79 lines
2.3 KiB
YAML
79 lines
2.3 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: 17
|
|
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
|
|
# Sonar 扫描
|
|
sonar-scan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@master
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Setup Java
|
|
uses: actions/setup-java@master
|
|
with:
|
|
distribution: 'adopt'
|
|
java-version: 17
|
|
- name: Cache SonarCloud packages
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ~/.sonar/cache
|
|
key: ${{ runner.os }}-sonar
|
|
restore-keys: ${{ runner.os }}-sonar
|
|
- name: Cache Maven packages
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ~/.m2
|
|
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: ${{ runner.os }}-m2
|
|
- name: Analyze
|
|
run: mvn -B verify -Psonar
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|