From 36d3a4eda9c27e032c0e9354844ba96dab1f0835 Mon Sep 17 00:00:00 2001 From: Mattias Reichel Date: Thu, 17 Oct 2024 16:42:14 +0200 Subject: [PATCH 1/2] ci: Update github workflows --- .github/workflows/gradle.yml | 75 +++++++++++++---------------- .github/workflows/release-notes.yml | 47 +++++------------- .github/workflows/release.yml | 58 +++++++++++----------- 3 files changed, 71 insertions(+), 109 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 016a176..4a2363c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,4 +1,4 @@ -name: Java CI +name: "Java CI" on: push: branches: @@ -9,64 +9,55 @@ on: workflow_dispatch: jobs: build: + name: "Build Project" runs-on: ubuntu-latest - env: - WORKSPACE: ${{ github.workspace }} steps: - - uses: actions/checkout@v4 - - name: Set up JDK + - name: "📥 Checkout repository" + uses: actions/checkout@v4 + - name: "☕️ Setup JDK" uses: actions/setup-java@v4 with: - distribution: 'temurin' - java-version: '17' - - name: Run Build - id: build - uses: gradle/gradle-build-action@v2 - env: - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} + java-version: 17 + distribution: liberica + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@v4 with: - arguments: build + develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + - name: "🔨 Build project" + id: build + run: ./gradlew build publish: if: github.event_name == 'push' runs-on: ubuntu-latest - needs: ["build"] + needs: 'build' steps: - - uses: actions/checkout@v4 - - name: Set up JDK + - name: "📥 Checkout repository" + uses: actions/checkout@v4 + - name: "☕️ Setup JDK" uses: actions/setup-java@v4 with: - distribution: 'temurin' - java-version: '17' - - name: Publish to repo.grails.org - uses: gradle/gradle-build-action@v2 + java-version: 17 + distribution: liberica + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@v4 + with: + develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + - name: "📤 Publish Snapshot version to Artifactory (repo.grails.org)" env: ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} - with: - arguments: publish - - name: Generate Documentation - id: docs - uses: gradle/gradle-build-action@v2 + run: ./gradlew publish + - name: "📖 Generate Snapshot Documentation" if: success() - with: - arguments: groovydoc - env: - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} - GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} - - name: Publish to Github Pages + id: docs + run: ./gradlew groovydoc + - name: "📤 Publish Snapshot Documentation to Github Pages" if: steps.docs.outcome == 'success' uses: micronaut-projects/github-pages-deploy-action@grails env: - TARGET_REPOSITORY: ${{ github.repository }} - GH_TOKEN: ${{ secrets.GH_TOKEN }} BRANCH: gh-pages - FOLDER: build/docs - DOC_FOLDER: gh-pages COMMIT_EMAIL: 'grails-build@users.noreply.github.com' - COMMIT_NAME: 'grails-build' \ No newline at end of file + COMMIT_NAME: 'grails-build' + DOC_FOLDER: gh-pages + FOLDER: build/docs/api + GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 7a780c6..1cb1f53 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -1,47 +1,22 @@ -name: Changelog +name: "Release Drafter" on: issues: types: [closed,reopened] push: branches: - '[3-9]+.[0-9]+.x' + pull_request: + types: [opened, reopened, synchronize] + pull_request_target: + types: [opened, reopened, synchronize] workflow_dispatch: jobs: - release_notes: + update_release_draft: + permissions: + contents: read # limit to read access runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Check if it has release drafter config file - id: check_release_drafter - run: | - has_release_drafter=$([ -f .github/release-drafter.yml ] && echo "true" || echo "false") - echo ::set-output name=has_release_drafter::${has_release_drafter} - - name: Extract branch name - id: extract_branch - run: echo ::set-output name=value::${GITHUB_REF:11} - # If it has release drafter: - - uses: release-drafter/release-drafter@v5 - if: steps.check_release_drafter.outputs.has_release_drafter == 'true' + - name: "📝 Update Release Draft" + uses: release-drafter/release-drafter@v6 env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - with: - commitish: ${{ steps.extract_branch.outputs.value }} - # Otherwise: - - name: Export Gradle Properties - if: steps.check_release_drafter.outputs.has_release_drafter == 'false' - uses: micronaut-projects/github-actions/export-gradle-properties@master - - uses: micronaut-projects/github-actions/release-notes@master - if: steps.check_release_drafter.outputs.has_release_drafter == 'false' - id: release_notes - with: - token: ${{ secrets.GH_TOKEN }} - - uses: ncipollo/release-action@v1 - if: steps.check_release_drafter.outputs.has_release_drafter == 'false' && steps.release_notes.outputs.generated_changelog == 'true' - with: - allowUpdates: true - commit: ${{ steps.release_notes.outputs.current_branch }} - draft: true - name: ${{ env.title }} ${{ steps.release_notes.outputs.next_version }} - tag: v${{ steps.release_notes.outputs.next_version }} - bodyFile: CHANGELOG.md - token: ${{ secrets.GH_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 54a3ccd..59d14e6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Release +name: "Release" on: release: types: [published] @@ -9,30 +9,28 @@ jobs: GIT_USER_NAME: 'grails-build' GIT_USER_EMAIL: 'grails-build@users.noreply.github.com' steps: - - name: Checkout repository + - name: "📥 Checkout repository" uses: actions/checkout@v4 - with: - token: ${{ secrets.GH_TOKEN }} - - uses: gradle/wrapper-validation-action@v1 - - name: Set up JDK + - name: "☕️ Setup JDK" uses: actions/setup-java@v4 with: - distribution: 'temurin' java-version: 17 - - name: Set the current release version + distribution: liberica + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@v4 + with: + develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + - name: "📝 Store the current release version" id: release_version - run: echo ::set-output name=release_version::${GITHUB_REF:11} - - name: Run pre-release + run: echo "release_version=${GITHUB_REF:11}" >> $GITHUB_OUTPUT + - name: "⚙ Run pre-release" uses: micronaut-projects/github-actions/pre-release@master - with: - token: ${{ secrets.GITHUB_TOKEN }} - - name: Generate secring file + - name: "🔐 Generate key file for artifact signing" env: SECRING_FILE: ${{ secrets.SECRING_FILE }} run: echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg - - name: Publish to Sonatype OSSRH + - name: "📤 Publish artifacts to Sonatype" id: publish - uses: gradle/gradle-build-action@v2 env: SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} @@ -41,33 +39,31 @@ jobs: SIGNING_KEY: ${{ secrets.SIGNING_KEY }} SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} SECRING_FILE: ${{ secrets.SECRING_FILE }} - with: - arguments: -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg publishToSonatype closeAndReleaseSonatypeStagingRepository - - name: Publish Documentation + run: > + ./gradlew + -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg + publishToSonatype + closeAndReleaseSonatypeStagingRepository + - name: "📖 Generate Documentation" id: docs if: steps.publish.outcome == 'success' - uses: gradle/gradle-build-action@v2 - with: - arguments: groovydoc - - name: Export Gradle Properties + run: ./gradlew groovydoc + - name: "📝 Export Gradle Properties" uses: micronaut-projects/github-actions/export-gradle-properties@master - - name: Publish to Github Pages + - name: "📤 Publish to Github Pages" if: steps.docs.outcome == 'success' uses: micronaut-projects/github-pages-deploy-action@master env: BETA: ${{ contains(steps.release_version.outputs.release_version, 'M') || contains(steps.release_version.outputs.release_version, 'RC') }} - 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 }} + DOC_FOLDER: gh-pages + FOLDER: build/docs + GH_TOKEN: ${{ secrets.GH_TOKEN }} VERSION: ${{ steps.release_version.outputs.release_version }} - - name: Run post-release + - name: "⚙️ Run post-release" if: success() uses: micronaut-projects/github-actions/post-release@master with: - token: ${{ secrets.GITHUB_TOKEN }} - env: - SNAPSHOT_SUFFIX: -SNAPSHOT + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From af9f3eeddc317d07930937527263b7abc59afc89 Mon Sep 17 00:00:00 2001 From: Mattias Reichel Date: Wed, 23 Oct 2024 14:44:23 +0200 Subject: [PATCH 2/2] ci: Reset `DOC_FOLDER` to `build/docs` --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 4a2363c..7e34498 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -59,5 +59,5 @@ jobs: COMMIT_EMAIL: 'grails-build@users.noreply.github.com' COMMIT_NAME: 'grails-build' DOC_FOLDER: gh-pages - FOLDER: build/docs/api + FOLDER: build/docs GH_TOKEN: ${{ secrets.GH_TOKEN }}