diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 3428378..e944381 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,4 +1,4 @@ -name: Java CI +name: "Java CI" on: push: branches: @@ -11,52 +11,43 @@ jobs: build: runs-on: ubuntu-latest env: - WORKSPACE: ${{ github.workspace }} - GRADLE_OPTS: -Xmx1500m -Dfile.encoding=UTF-8 + GIT_USER_NAME: grails-build + GIT_USER_EMAIL: grails-build@users.noreply.github.com 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: 'liberica' - java-version: '17' - - name: Run Build - uses: gradle/gradle-build-action@v3 - 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 }} - with: - arguments: build -Dgeb.env=chromeHeadless - publish: - if: github.event_name == 'push' - needs: ['build'] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 + distribution: liberica + java-version: 17 + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@v4 with: - distribution: 'liberica' - java-version: '17' - - name: Publish Artifacts (repo.grails.org) - id: publish - uses: gradle/gradle-build-action@v3 + develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + - name: "🔨 Run 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 + - name: "📤 Publish Snapshot to repo.grails.org" + if: success() && github.event_name == 'push' 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 }} ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} - with: - arguments: -Dorg.gradle.internal.publish.checksums.insecure=true publish - - name: Publish to Github Pages - if: success() + 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 + - name: "📖 Publish Groovydoc to Github Pages" + if: success() && github.event_name == 'push' uses: micronaut-projects/github-pages-deploy-action@grails env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} BRANCH: gh-pages - FOLDER: build/docs + COMMIT_EMAIL: ${{ env.GIT_USER_EMAIL }} + COMMIT_NAME: ${{ env.GIT_USER_NAME }} DOC_FOLDER: gh-pages - COMMIT_EMAIL: behlp@objectcomputing.com - COMMIT_NAME: Puneet Behl \ No newline at end of file + FOLDER: build/docs + GH_TOKEN: ${{ secrets.GH_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index f379475..58f6a1d 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -1,4 +1,4 @@ -name: Changelog +name: "Changelog" on: issues: types: [closed,reopened] @@ -11,38 +11,7 @@ jobs: release_notes: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # 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@v6 - if: steps.check_release_drafter.outputs.has_release_drafter == 'true' + - name: "📝 Update release notes 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 }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5dc8ae2..b6aa574 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,41 +1,39 @@ -name: Release +name: "Release" on: release: types: [published] jobs: release: runs-on: ubuntu-latest - strategy: - matrix: - java: ['17'] env: - GIT_USER_NAME: 'grails-build' - GIT_USER_EMAIL: 'grails-build@users.noreply.github.com' + GIT_USER_NAME: grails-build + GIT_USER_EMAIL: grails-build@users.noreply.github.com steps: - - name: Checkout repository - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - with: - token: ${{ secrets.GH_TOKEN }} - - name: Set up JDK + - name: "📥 Checkout repository" + uses: actions/checkout@v4 + - name: "☕️ Setup JDK" uses: actions/setup-java@v4 with: - distribution: 'liberica' - java-version: ${{ matrix.java }} - - name: Set the current release version + distribution: liberica + java-version: 17 + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@v4 + with: + develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + - name: "🔢 Set 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 secring file" env: SECRING_FILE: ${{ secrets.SECRING_FILE }} run: echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg - - name: Publish to Sonatype OSSRH + - name: "📤 Publish to Sonatype" id: publish - uses: gradle/gradle-build-action@v3 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 }} SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} SONATYPE_NEXUS_URL: ${{ secrets.SONATYPE_NEXUS_URL }} @@ -43,21 +41,21 @@ 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: Run Assemble + run: > + ./gradlew + -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg + publishToSonatype + closeAndReleaseSonatypeStagingRepository + - name: "📦 Run Assemble" id: assemble if: steps.publish.outcome == 'success' - uses: gradle/gradle-build-action@v3 - with: - arguments: assemble 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: Export Gradle Properties + 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 assemble + - name: "✈️ Export Gradle Properties" uses: micronaut-projects/github-actions/export-gradle-properties@master - - name: Publish to Github Pages + - name: "📖 Publish Groovydoc to Github Pages" if: steps.assemble.outcome == 'success' uses: micronaut-projects/github-pages-deploy-action@master env: @@ -67,13 +65,9 @@ jobs: BRANCH: gh-pages FOLDER: build/docs DOC_FOLDER: gh-pages - COMMIT_EMAIL: behlp@objectcomputing.com - COMMIT_NAME: Puneet Behl + COMMIT_EMAIL: ${{ env.GIT_USER_EMAIL }} + COMMIT_NAME: ${{ env.GIT_USER_NAME }} 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 + uses: micronaut-projects/github-actions/post-release@master \ No newline at end of file diff --git a/build.gradle b/build.gradle index 4e0a9a8..9672f73 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,16 @@ plugins { id 'java-library' - id 'eclipse' - id 'idea' id 'org.grails.grails-plugin' id 'org.grails.grails-gsp' id 'org.grails.internal.grails-plugin-publish' } -version project.projectVersion -group "org.grails.plugins" +version = project.projectVersion +group = 'org.grails.plugins' repositories { mavenCentral() - maven { url "https://repo.grails.org/grails/core" } + maven { url = 'https://repo.grails.org/grails/core' } } java { @@ -34,12 +32,12 @@ dependencies { } grailsPublish { - userOrg = "grails" + userOrg = 'grails' githubSlug = 'grails/scaffolding' license { name = 'Apache-2.0' } - title = "Grails Scaffolding Plugin" - desc = "Provides scaffolding for Grails applications" - developers = [puneetbehl: "Puneet Behl"] + title = 'Grails Scaffolding Plugin' + desc = 'Provides scaffolding for Grails applications' + developers = [puneetbehl: 'Puneet Behl'] } \ No newline at end of file diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 4c615a9..d0663cf 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -1,7 +1,7 @@ repositories { mavenCentral() - maven { url "https://repo.grails.org/grails/core/" } + maven { url = 'https://repo.grails.org/grails/core' } } dependencies { - implementation("org.grails:grails-gradle-plugin:7.0.0-SNAPSHOT") + runtimeOnly 'org.grails:grails-gradle-plugin:7.0.0-SNAPSHOT' } diff --git a/gradle.properties b/gradle.properties index d73f323..6ffcf5d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,5 +5,4 @@ groovyVersion=4.0.23 org.gradle.caching=true org.gradle.daemon=true -org.gradle.parallel=true -org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xmx1536M -XX:MaxMetaspaceSize=512M +org.gradle.parallel=true \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index b328f65..2c34506 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,37 +1,33 @@ -pluginManagement { - repositories { - gradlePluginPortal() - mavenCentral() - } -} - plugins { - id "com.gradle.enterprise" version "3.17.1" - id 'com.gradle.common-custom-user-data-gradle-plugin' version '1.13' + id 'com.gradle.develocity' version '3.18.1' + id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.0.2' } -gradleEnterprise { +def isCI = System.getenv('CI') != null +def isLocal = !isCI +def isAuthenticated = System.getenv('DEVELOCITY_ACCESS_KEY') != null +def isBuildCacheAuthenticated = + System.getenv('DEVELOCITY_BUILD_CACHE_NODE_USER') != null && + System.getenv('DEVELOCITY_BUILD_CACHE_NODE_KEY') != null + +develocity { server = 'https://ge.grails.org' buildScan { - publishAlways() - publishIfAuthenticated() - uploadInBackground = System.getenv("CI") == null - capture { - taskInputFiles = true - } + publishing.onlyIf { isAuthenticated } + uploadInBackground = isLocal } } buildCache { - local { enabled = System.getenv('CI') != 'true' } - remote(HttpBuildCache) { - push = System.getenv('CI') == 'true' + local { enabled = isLocal } + remote(develocity.buildCache) { + push = isCI && isBuildCacheAuthenticated enabled = true - url = 'https://ge.grails.org/cache/' - credentials { - username = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER') - password = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY') - } - }} + usernameAndPassword( + System.getenv('DEVELOCITY_BUILD_CACHE_NODE_USER') ?: '', + System.getenv('DEVELOCITY_BUILD_CACHE_NODE_KEY') ?: '' + ) + } +} rootProject.name='scaffolding' \ No newline at end of file