1.调整 Spring Boot 配置文件到 config 目录 2.移除 Maven Profiles 配置 3.调整项目打包结构,分离依赖、配置文件。如无依赖调整,部署时仅需拷贝程序包,且更方便进行配置修改 4.调整后的项目打包结构,更贴合部署安装程序结构,例如:Tomcat 安装包、Maven 安装包 5.建议在 bin 目录上一级执行程序,以使日志文件能正确生成在 logs 目录下,参考 Dockerfile
99 lines
3.0 KiB
YAML
99 lines
3.0 KiB
YAML
name: Deploy
|
|
|
|
on:
|
|
# 推送时执行
|
|
push:
|
|
branches: [dev]
|
|
# 可手动执行
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
# 部署后端服务
|
|
deploy-server:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# 1、检出源码
|
|
- name: Checkout
|
|
uses: actions/checkout@master
|
|
# 2、安装 Java 环境
|
|
- name: Setup Java
|
|
uses: actions/setup-java@master
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: '8'
|
|
cache: 'maven'
|
|
# 3、打包
|
|
- name: Build
|
|
run: mvn -B package --file pom.xml
|
|
# 4、拷贝到服务器
|
|
- name: Copy
|
|
uses: garygrossgarten/github-action-scp@release
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
port: ${{ secrets.SERVER_PORT }}
|
|
username: ${{ secrets.SERVER_USERNAME }}
|
|
password: ${{ secrets.SERVER_PASSWORD }}
|
|
local: ./continew-admin-webapi/target/app
|
|
remote: /docker/continew-admin
|
|
# 5、启动后端服务
|
|
- name: Start
|
|
uses: appleboy/ssh-action@master
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
port: ${{ secrets.SERVER_PORT }}
|
|
username: ${{ secrets.SERVER_USERNAME }}
|
|
password: ${{ secrets.SERVER_PASSWORD }}
|
|
script: |
|
|
cd /docker
|
|
docker-compose up --force-recreate --build -d continew-admin-server
|
|
docker images | grep none | awk '{print $3}' | xargs docker rmi
|
|
|
|
# 部署前端
|
|
deploy-web:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# 1、检出源码
|
|
- name: Checkout
|
|
uses: actions/checkout@master
|
|
# 2、安装 PNPM
|
|
- name: Setup PNPM
|
|
uses: pnpm/action-setup@v2
|
|
with:
|
|
version: latest
|
|
# 3、安装 Node 环境
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
cache: pnpm
|
|
cache-dependency-path: ./continew-admin-ui/pnpm-lock.yaml
|
|
# 4、安装依赖
|
|
- name: Install Dependencies
|
|
run: pnpm i --frozen-lockfile
|
|
working-directory: ./continew-admin-ui
|
|
# 5、打包
|
|
- name: Build
|
|
run: pnpm build
|
|
working-directory: ./continew-admin-ui
|
|
# 6、拷贝到服务器
|
|
- name: Copy
|
|
uses: garygrossgarten/github-action-scp@release
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
port: ${{ secrets.SERVER_PORT }}
|
|
username: ${{ secrets.SERVER_USERNAME }}
|
|
password: ${{ secrets.SERVER_PASSWORD }}
|
|
local: ./continew-admin-ui/dist
|
|
remote: /docker/continew-admin/tmp
|
|
# 7、重启前端服务
|
|
- name: Restart
|
|
uses: appleboy/ssh-action@master
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
port: ${{ secrets.SERVER_PORT }}
|
|
username: ${{ secrets.SERVER_USERNAME }}
|
|
password: ${{ secrets.SERVER_PASSWORD }}
|
|
script: |
|
|
rm -rf /docker/continew-admin/web/*
|
|
mv /docker/continew-admin/tmp/* /docker/continew-admin/web
|
|
docker restart nginx |