--- name: release on: push: branches: - main jobs: release: name: Release runs-on: ubuntu-latest if: ${{ !startsWith(github.event.head_commit.message, 'Release') }} steps: - name: "Initialize Environment" id: initialize uses: https://w9r.dev/w9r.dev/action-setup-environment@v1.1.2 with: roleid: ${{ secrets.VAULT_ROLE_ID }} secretid: ${{ secrets.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" echo "mvn -B --file pom.xml versions:set -DnewVersion=$NEW_VERSION" mvn -B --file pom.xml versions:set -DnewVersion=$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" uses: https://w9r.dev/w9r.dev/action-git-commit-push@v1.4 with: email: ${{ steps.initialize.outputs.gitemail }} name: ${{ steps.initialize.outputs.gituser }} commit_message: "Release ${{ env.NEW_VERSION }}" files: pom.xml CHANGELOG.md access_token: ${{ env.JRELEASER_GITEA_TOKEN }} - name: Build package and populate staging area for deployment env: MAVEN_USERNAME: ${{ env.NEXUS_USERNAME }} MAVEN_CENTRAL_TOKEN: ${{ env.NEXUS_PASSWORD }} MAVEN_GPG_PASSPHRASE: ${{ env.GPG_PASSPHRASE }} run: | mvn -X -B --file pom.xml package mvn -X -B --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 }} - 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