--- name: release on: push: branches: - main jobs: release: name: Release runs-on: ubuntu-latest if: ${{ !startsWith(github.event.head_commit.message, 'Release') }} steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Initialize Environment uses: https://w9r.dev/w9r.dev/action-setup-environment@v1 with: vaultRoleId: ${{ secrets.VAULT_ROLE_ID }} vaultSecretId: ${{ VAULT_SECRET_ID }} - name: Determine next version uses: https://github.com/obfu5c8/action-svu@v1 id: generate_next_version with: type: auto force-increment: true no-metadata: false no-pre-release: false no-build: false strip-prefix: true prefix: '' suffix: '' - name: Set new version env: MAVEN_USERNAME: ${{ env.NEXUS_USERNAME }} MAVEN_CENTRAL_TOKEN: ${{ env.NEXUS_PASSWORD }} MAVEN_GPG_PASSPHRASE: ${{ env.GPG_PASSPHRASE }} run: | NEW_VERSION=${{steps.generate_next_version.outputs.version}} echo NEW_VERSION=$NEW_VERSION >> "$GITHUB_ENV" echo "New version: $NEW_VERSION" mvn -B --file pom.xml versions:set -DnewVersion=${{ env.NEW_VERSION }} - name: Run JReleaser (Changelog) uses: https://w9r.dev/actions/release-action@main with: arguments: changelog --debug setup-java: false continue-on-error: true env: JRELEASER_OUTPUT_DIRECTORY: target JRELEASER_PROJECT_VERSION: ${{ env.NEW_VERSION }} JRELEASER_GITEA_TOKEN: ${{ env.JRELEASER_GITEA_TOKEN }} JRELEASER_GPG_PASSPHRASE: ${{ env.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ env.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ env.GPG_PRIVATE_KEY }} - name: Commit and push changes run: | git config --global user.email "${{ steps.import-gpg.outputs.email }}" git config --global user.name "${{ steps.import-gpg.outputs.name }}" git add pom.xml CHANGELOG.md git commit -S -m "Release ${{ env.NEW_VERSION }}" git push - name: Build package and populate staging area for deployment run: | mvn -B --file pom.xml package mvn --file pom.xml -Ppublication - name: Run JReleaser (Assemble) uses: https://w9r.dev/actions/release-action@main with: arguments: assemble --debug setup-java: false continue-on-error: true env: JRELEASER_OUTPUT_DIRECTORY: target JRELEASER_PROJECT_VERSION: ${{ env.NEW_VERSION }} JRELEASER_GITEA_TOKEN: ${{ secrets.JRELEASER_GITEA_TOKEN }} JRELEASER_GPG_PASSPHRASE: ${{ env.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ env.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ env.GPG_PRIVATE_KEY }} - name: Run JReleaser (Release) uses: https://w9r.dev/actions/release-action@main with: arguments: release --debug setup-java: false env: JRELEASER_OUTPUT_DIRECTORY: target JRELEASER_PROJECT_VERSION: ${{ env.NEW_VERSION }} JRELEASER_GITEA_TOKEN: ${{ secrets.JRELEASER_GITEA_TOKEN }} JRELEASER_GPG_PASSPHRASE: ${{ env.GPG_PASSPHRASE }} JRELEASER_GPG_PUBLIC_KEY: ${{ env.GPG_PUBLIC_KEY }} JRELEASER_GPG_SECRET_KEY: ${{ env.GPG_PRIVATE_KEY }} JRELEASER_ARTIFACTORY_USERNAME: ${{ env.NEXUS_USERNAME }} JRELEASER_ARTIFACTORY_TOKEN: ${{ env.NEXUS_PASSWORD }} # Persist logs - name: JReleaser release trace if: always() uses: https://gitea.com/actions/upload-artifact@v3 with: name: jreleaser-trace path: target/jreleaser/trace.log - name: JReleaser release properties if: always() uses: https://gitea.com/actions/upload-artifact@v3 with: name: jreleaser-properties path: target/jreleaser/output.properties