All checks were successful
Build and Deploy Spring Boot / build-and-deploy (push) Successful in 42s
Removed unnecessary `screen -ls` commands and a sleep delay to streamline the deployment process, making it more efficient.
72 lines
2.5 KiB
YAML
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 &'
|