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 # Qodana 扫描 qodana-scan: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - name: Checkout uses: actions/checkout@master with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: Analyze uses: JetBrains/qodana-action@v2023.3 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} # 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 }}