75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
name: release-ubuntu
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*.*.*" # 触发条件是推送标签 如git tag v2.7.4 git push origin v2.7.4
|
|
|
|
jobs:
|
|
build-ubuntu:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
arch: [amd64]
|
|
max-parallel: 1 # 最大并行数
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4 # github action运行环境
|
|
|
|
- name: Create release # 创建文件夹
|
|
run: |
|
|
rm -rf release
|
|
mkdir release
|
|
echo ${{ github.sha }} > Release.txt
|
|
cp Release.txt LICENSE release/
|
|
cat Release.txt
|
|
|
|
- name: Set up JDK 1.8
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
# Eclipse基金会维护的开源Java发行版 因为github action参考java的用这个 所以用这个
|
|
# 还有microsoft(微软维护的openjdk发行版) oracle(商用SDK)等
|
|
distribution: 'temurin'
|
|
java-version: '8'
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20.x' # Node.js版本 20系列的最新稳定版
|
|
|
|
- name: Compile backend
|
|
run: |
|
|
mvn package
|
|
mvn package -P war
|
|
|
|
- name: Compile frontend
|
|
run: |
|
|
cd ./web
|
|
npm install
|
|
npm run build:prod
|
|
cd ../
|
|
|
|
- name: Package Files
|
|
run: |
|
|
cp -r ./src/main/resources/static release/ # 复制前端文件
|
|
cp ./target/*.jar release/ # 复制 JAR 文件
|
|
cp ./src/main/resources/application-dev.yml release/application.yml
|
|
|
|
BRANCH=${{ github.event.base_ref }}
|
|
BRANCH_NAME=$(echo "$BRANCH" | grep -oP 'refs/heads/\K.*')
|
|
echo "BRANCH_NAME= ${BRANCH_NAME}"
|
|
# 如果无法获取,使用默认分支
|
|
if [[ -z "BRANCH_NAME" ]]; then
|
|
BRANCH_NAME="${{ github.event.repository.default_branch }}"
|
|
fi
|
|
|
|
TAG_NAME="${GITHUB_REF#refs/tags/}"
|
|
ZIP_FILE_NAME="${BRANCH_NAME}-${TAG_NAME}.zip"
|
|
zip -r "$ZIP_FILE_NAME" release
|
|
echo "ZIP_FILE_NAME=$ZIP_FILE_NAME" >> $GITHUB_ENV
|
|
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v2
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
with:
|
|
files: ${{ env.ZIP_FILE_NAME }} |