Allow release dry-run without publishing secrets #5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Kotlin CI | |
| on: | |
| push: | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| env: | |
| JAVA_VERSION: 17 | |
| JAVA_DISTRIBUTION: "temurin" | |
| MAJOR_MINOR_VERSION: 0.1. | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: ${{ env.JAVA_VERSION }} | |
| distribution: ${{ env.JAVA_DISTRIBUTION }} | |
| cache: gradle | |
| - name: Build | |
| run: ./gradlew clean build | |
| - name: Test | |
| run: ./gradlew test | |
| release-dryrun: | |
| name: Release Dry-Run | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: github.ref != 'refs/heads/main' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: ${{ env.JAVA_VERSION }} | |
| distribution: ${{ env.JAVA_DISTRIBUTION }} | |
| cache: gradle | |
| - name: Create staging repositories | |
| run: ./gradlew -Pversion=${{ env.MAJOR_MINOR_VERSION }}${{ github.run_number }} publish | |
| - name: Run JReleaser | |
| uses: jreleaser/release-action@v2 | |
| with: | |
| arguments: full-release --dry-run --yolo | |
| env: | |
| JRELEASER_PROJECT_VERSION: ${{ env.MAJOR_MINOR_VERSION }}${{ github.run_number }} | |
| JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} | |
| JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} | |
| JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
| JRELEASER_MAVENCENTRAL_TOKEN: ${{ secrets.OSSRH_TOKEN }} | |
| - name: JReleaser release output | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jreleaser-release | |
| path: | | |
| out/jreleaser/trace.log | |
| out/jreleaser/output.properties | |
| release: | |
| name: Release | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/main' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: ${{ env.JAVA_VERSION }} | |
| distribution: ${{ env.JAVA_DISTRIBUTION }} | |
| cache: gradle | |
| - name: Create staging repositories | |
| run: ./gradlew -Pversion=${{ env.MAJOR_MINOR_VERSION }}${{ github.run_number }} publish | |
| - name: Run JReleaser | |
| uses: jreleaser/release-action@v2 | |
| env: | |
| JRELEASER_PROJECT_VERSION: ${{ env.MAJOR_MINOR_VERSION }}${{ github.run_number }} | |
| JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} | |
| JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} | |
| JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
| JRELEASER_MAVENCENTRAL_TOKEN: ${{ secrets.OSSRH_TOKEN }} | |
| continue-on-error: true | |
| - name: JReleaser release output | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jreleaser-release | |
| path: | | |
| out/jreleaser/trace.log | |
| out/jreleaser/output.properties | |
| continue-on-error: true | |
| - name: Verify Published Artifacts | |
| env: | |
| SONATYPE_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
| SONATYPE_PASSWORD: ${{ secrets.OSSRH_TOKEN }} | |
| run: | | |
| for artifact in metrics-core gradle-build-metrics-plugin ktor-startup-metrics junit5-test-metrics; do | |
| sh .github/tools/check_publish.sh \ | |
| --namespace io.agodadev \ | |
| --bundle-name "$artifact" \ | |
| --bundle-version "${{ env.MAJOR_MINOR_VERSION }}${{ github.run_number }}" | |
| done |