Publish Gradle Plugin #8
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: Publish Gradle Plugin | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: "Release version, for example v0.2.0" | |
| required: true | |
| type: string | |
| permissions: | |
| contents: read | |
| jobs: | |
| publish: | |
| name: Publish Gradle Plugin Portal artifact | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| env: | |
| GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} | |
| GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Set up Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Validate required secrets | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| for name in GRADLE_PUBLISH_KEY GRADLE_PUBLISH_SECRET; do | |
| if [[ -z "${!name}" ]]; then | |
| echo "::error title=Missing secret::$name is required for Gradle Plugin Portal publication" | |
| exit 1 | |
| fi | |
| done | |
| - name: Verify requested version contract | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| version="${{ inputs.version }}" | |
| version="${version#v}" | |
| ./gradlew -p fixthis-gradle-plugin \ | |
| test \ | |
| -PFIXTHIS_VERSION="$version" \ | |
| --no-daemon | |
| - name: Publish Gradle plugin | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| version="${{ inputs.version }}" | |
| version="${version#v}" | |
| ./gradlew \ | |
| :fixthis-gradle-plugin:publishPlugins \ | |
| -PFIXTHIS_VERSION="$version" \ | |
| --no-daemon |