GiteaActionTest/.gitea/workflows/build-deploy.yaml
hxuanyu 66e91e80e3
All checks were successful
Build and Deploy Spring Boot / build-and-deploy (push) Successful in 42s
Simplify deployment script
Removed unnecessary `screen -ls` commands and a sleep delay to streamline the deployment process, making it more efficient.
2024-11-04 19:07:57 +08:00

72 lines
2.5 KiB
YAML

name: Build and Deploy Spring Boot
on:
push:
branches: [ master ] # 可以根据需要修改分支名
workflow_dispatch: # 允许手动触发
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 检出代码
- name: "拉取代码"
uses: actions/checkout@v4
# 设置JDK环境
- name: "部署jdk8"
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'adopt'
# 设置maven环境
- name: "部署maven"
uses: stCarolas/setup-maven@v4.5
with:
maven-version: '3.8.6'
# 缓存Maven依赖
- name: "设置maven缓存"
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
# 使用Maven打包
- name: "打包"
run: mvn clean package -DskipTests
# 将JAR包传输到服务器部署
- name: "推送"
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
source: target/${{ vars.JAR_NAME }}
target: /home/tools/${{ vars.APP_NAME }}/package
# 停止原应用
- name: 停止原应用
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
script: |
screen -list | grep -q "${{ vars.APP_NAME }}" && screen -S ${{ vars.APP_NAME }} -X quit; true
# 使用新版jar包启动应用
- name: 使用新版jar包启动应用
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
script: |
rm -f /home/tools/${{ vars.APP_NAME }}/${{ vars.JAR_NAME }}
mv /home/tools/${{ vars.APP_NAME }}/package/target/${{ vars.JAR_NAME }} /home/tools/${{ vars.APP_NAME }}/${{ vars.JAR_NAME }}
screen -dmS ${{ vars.APP_NAME }} base -c 'nohup /usr/local/java/jdk1.8.0_202/bin/java -jar /home/tools/${{ vars.APP_NAME }}/${{ vars.JAR_NAME }} > /home/tools/${{ vars.APP_NAME }}/apprun.log 2>&1 &'