| name: Java CI |
| on: |
| push: |
| branches: |
| - '[4-9]+.[0-9]+.x' |
| pull_request: |
| branches: |
| - '[4-9]+.[0-9]+.x' |
| workflow_dispatch: |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| java: ['17', '21'] |
| steps: |
| - name: "📥 Checkout repository" |
| uses: actions/checkout@v4 |
| - name: "☕️ Setup JDK" |
| uses: actions/setup-java@v4 |
| with: |
| distribution: liberica |
| java-version: ${{ matrix.java }} |
| - name: "🐘 Setup Gradle" |
| uses: gradle/actions/setup-gradle@v4 |
| with: |
| develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} |
| - name: "🔨 Build project" |
| id: build |
| env: |
| DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} |
| DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} |
| run: ./gradlew build |
| publish: |
| if: github.event_name == 'push' && github.repository_owner == 'grails' |
| needs: ['build'] |
| runs-on: ubuntu-latest |
| steps: |
| - name: "📥 Checkout repository" |
| uses: actions/checkout@v4 |
| - name: "☕️ Setup JDK" |
| uses: actions/setup-java@v4 |
| with: |
| distribution: liberica |
| java-version: 17 |
| - name: "🐘 Setup Gradle" |
| uses: gradle/actions/setup-gradle@v4 |
| with: |
| develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} |
| - name: "📤 Publish Snapshot Artifacts to Artifactory (repo.grails.org/libs-snapshot-local)" |
| id: publish |
| env: |
| ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} |
| ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} |
| DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} |
| DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} |
| run: > |
| ./gradlew |
| -Dorg.gradle.internal.publish.checksums.insecure=true |
| publish |
| docs: |
| if: github.event_name == 'push' && github.repository_owner == 'grails' |
| needs: publish |
| runs-on: ubuntu-latest |
| permissions: |
| contents: write |
| env: |
| GIT_USER_NAME: grails-build |
| GIT_USER_EMAIL: grails-build@users.noreply.github.com |
| steps: |
| - name: "📥 Checkout repository" |
| uses: actions/checkout@v4 |
| - name: "☕️ Setup JDK" |
| uses: actions/setup-java@v4 |
| with: |
| distribution: liberica |
| java-version: 17 |
| - name: "🐘 Setup Gradle" |
| uses: gradle/actions/setup-gradle@v4 |
| with: |
| develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} |
| - name: "📜 Generate Groovydoc" |
| id: groovydoc |
| env: |
| DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} |
| DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} |
| run: ./gradlew groovydoc |
| - name: "🚀 Publish to Github Pages" |
| id: docs |
| if: success() |
| uses: grails/github-pages-deploy-action@v2 |
| env: |
| SKIP_SNAPSHOT: ${{ contains(needs.publish.outputs.release_version, 'M') }} |
| TARGET_REPOSITORY: ${{ github.repository }} |
| GH_TOKEN: ${{ secrets.GH_TOKEN }} |
| BRANCH: gh-pages |
| FOLDER: build/docs |
| DOC_FOLDER: gh-pages |
| COMMIT_EMAIL: ${{ env.GIT_USER_EMAIL }} |
| COMMIT_NAME: ${{ env.GIT_USER_NAME }} |