|
4 | 4 | branches: [ main ] |
5 | 5 | push: |
6 | 6 | branches: [ main ] |
| 7 | + tags: [ v* ] |
7 | 8 |
|
8 | 9 | permissions: |
9 | 10 | contents: write # auto-merge requirement |
|
43 | 44 | name: test-results-java-${{ matrix.java }} |
44 | 45 | path: '**/build/test-results/test/TEST-*.xml' |
45 | 46 |
|
| 47 | + - name: Prepare release notes |
| 48 | + if: github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/') |
| 49 | + uses: release-drafter/release-drafter@v7 |
| 50 | + with: |
| 51 | + config-name: release-drafter.yml |
| 52 | + env: |
| 53 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 54 | + |
46 | 55 | spring-compat: |
47 | 56 | name: "Spring Boot ${{ matrix.spring-boot }}" |
48 | 57 | runs-on: ubuntu-24.04 |
|
86 | 95 | - name: Test okapi-kafka |
87 | 96 | run: ./gradlew :okapi-kafka:test -PkafkaVersion=${{ matrix.kafka }} |
88 | 97 |
|
| 98 | + publish: |
| 99 | + name: Publish to Maven Central |
| 100 | + needs: [build, spring-compat, kafka-compat] |
| 101 | + runs-on: ubuntu-24.04 |
| 102 | + if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v')) |
| 103 | + steps: |
| 104 | + - name: Checkout |
| 105 | + uses: actions/checkout@v6 |
| 106 | + |
| 107 | + - name: Set up JDK 21 |
| 108 | + uses: actions/setup-java@v5 |
| 109 | + with: |
| 110 | + distribution: 'temurin' |
| 111 | + java-version: 21 |
| 112 | + |
| 113 | + - name: Setup Gradle |
| 114 | + uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1 |
| 115 | + |
| 116 | + - name: Publish to Maven Central |
| 117 | + run: ./gradlew publishAndReleaseToMavenCentral |
| 118 | + env: |
| 119 | + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} |
| 120 | + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} |
| 121 | + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.PGP_SECRET }} |
| 122 | + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.PGP_PASSPHRASE }} |
| 123 | + |
| 124 | + - name: Extract version from tag |
| 125 | + run: | |
| 126 | + version=${GITHUB_REF/refs\/tags\/v/} |
| 127 | + echo "VERSION=$version" >> $GITHUB_ENV |
| 128 | +
|
| 129 | + - name: Publish release notes |
| 130 | + uses: release-drafter/release-drafter@v7 |
| 131 | + with: |
| 132 | + config-name: release-drafter.yml |
| 133 | + publish: true |
| 134 | + name: "v${{ env.VERSION }}" |
| 135 | + tag: "v${{ env.VERSION }}" |
| 136 | + version: "v${{ env.VERSION }}" |
| 137 | + env: |
| 138 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 139 | + |
89 | 140 | auto-merge-dependabot: |
90 | 141 | # only for PRs by dependabot[bot] |
91 | 142 | if: github.event.pull_request.user.login == 'dependabot[bot]' |
|
0 commit comments