Some checks failed
Build and Deploy Spring Boot / build-and-deploy (push) Failing after 34s
This change adds `screen -ls` commands before and after starting the Java application to list active screen sessions, which can help in debugging and monitoring.
73 lines
2.5 KiB
YAML
73 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 -ls
|
|
screen -dmS ${{ vars.APP_NAME }} /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
|
|
screen -ls |