| name: "Java CI" |
| on: |
| push: |
| branches: |
| - '[5-9]+.[0-9]+.x' |
| pull_request: |
| branches: |
| - '[5-9]+.[0-9]+.x' |
| workflow_dispatch: |
| env: |
| GIT_USER_NAME: grails-build |
| GIT_USER_EMAIL: grails-build@users.noreply.github.com |
| jobs: |
| build: |
| name: "Build Project" |
| runs-on: ubuntu-24.04 |
| permissions: |
| contents: read |
| packages: read |
| env: |
| GRADLE_OPTS: -Xmx1500m -Dfile.encoding=UTF-8 |
| steps: |
| - name: "📥 Checkout the repository" |
| uses: actions/checkout@v4 |
| - name: "☕️ Setup JDK" |
| uses: actions/setup-java@v4 |
| with: |
| java-version: '17' |
| distribution: 'liberica' |
| - name: "🐘 Setup Gradle" |
| uses: gradle/actions/setup-gradle@v4 |
| - name: "🔨 Run Build" |
| env: |
| GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }} |
| run: ./gradlew build |
| publish: |
| if: github.event_name == 'push' |
| needs: build |
| runs-on: ubuntu-24.04 |
| permissions: |
| contents: read |
| packages: read |
| steps: |
| - name: "📥 Checkout the repository" |
| uses: actions/checkout@v4 |
| - name: "☕️ Setup JDK" |
| uses: actions/setup-java@v4 |
| with: |
| java-version: '17' |
| distribution: 'liberica' |
| - name: "🐘 Setup Gradle" |
| uses: gradle/actions/setup-gradle@v4 |
| with: |
| develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} |
| - name: "📤 Publish to Snapshot (repo.grails.org)" |
| id: publish |
| env: |
| GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }} |
| GRAILS_PUBLISH_RELEASE: 'false' |
| MAVEN_PUBLISH_USERNAME: ${{ secrets.MAVEN_PUBLISH_USERNAME }} |
| MAVEN_PUBLISH_PASSWORD: ${{ secrets.MAVEN_PUBLISH_PASSWORD }} |
| MAVEN_PUBLISH_URL: ${{ secrets.MAVEN_PUBLISH_SNAPSHOT_URL }} |
| run: ./gradlew --no-build-cache publish |
| - name: "📜 Generate Documentation" |
| if: success() |
| id: docs |
| env: |
| GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }} |
| run: ./gradlew docs |
| - name: "🚀 Publish to Github Pages" |
| if: success() |
| uses: grails/github-pages-deploy-action@v2 |
| env: |
| GH_TOKEN: ${{ secrets.GH_TOKEN }} |
| BRANCH: gh-pages |
| FOLDER: build/docs |
| COMMIT_EMAIL: ${{ env.GIT_USER_EMAIL }} |
| COMMIT_NAME: ${{ env.GIT_USER_NAME }} |