# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven name: "Project Deploy" on: # 支持手动触发构建 workflow_dispatch: release: # 创建release的时候触发 types: [ published ] jobs: packages-deploy: name: "Publish Project (GitHub Packages)" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: "Set up JDK" uses: actions/setup-java@v2 with: java-version: '11' distribution: 'adopt' cache: maven server-id: github server-username: MAVEN_USERNAME server-password: MAVEN_TOKEN gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase - name: "Packages Deploy" run: mvn -B -Pgithub deploy --file pom.xml -DskipTests env: MAVEN_USERNAME: ${{ github.repository_owner }} MAVEN_TOKEN: ${{secrets.GITHUB_TOKEN}} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} central-deploy: name: "Deploy Project (Central Repository)" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: "Set up JDK" uses: actions/setup-java@v2 with: java-version: '11' distribution: 'adopt' cache: maven server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase - name: "Central Deploy" run: mvn -B -Possrh deploy --file pom.xml -DskipTests env: MAVEN_USERNAME: ${{ secrets.OSSRH_USER }} MAVEN_PASSWORD: ${{ secrets.OSSRH_PASS }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} github-deploy: name: "Deploy Project (GitHub Repository)" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: "Set up JDK" uses: actions/setup-java@v2 with: java-version: '11' distribution: 'adopt' cache: maven gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase - name: "Maven Deploy" run: mvn -B -Plocal deploy --file pom.xml -DskipTests env: MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: "Copy artifacts" run: | rm -rf deploy mkdir -vp deploy cp -vrf $HOME/local-deploy/* deploy/ - name: "Configure Git" env: DEPLOY_PRI: ${{secrets.DEPLOY_PRI}} run: | sudo timedatectl set-timezone "Asia/Shanghai" mkdir -p ~/.ssh/ echo "$DEPLOY_PRI" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name '${{ github.repository_owner }}' git config --global user.email '${{ github.repository_owner }}@users.noreply.github.com' - name: "Commit&Push repository files" run: | cd deploy git init git remote add origin git@github.com:${{ github.repository_owner }}/${{ github.event.repository.name }}.git git checkout -b repo git add -A git commit -m "Maven project deployment." git push origin HEAD:repo --force