Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 21 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: "Output Agent IP" # in the event your agent has network issues, you can use this to debug
run: curl -s https://api.ipify.org
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Export .sdkmanrc properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
with:
Expand All @@ -28,14 +28,20 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.SDKMANRC_java }}
- name: 'Ensure Common Build Date' # to ensure a reproducible build
run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> "$GITHUB_ENV"
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "🔨 Build project without tests"
if: ${{ contains(github.event.head_commit.message, '[skip tests]') }}
run: >
Expand All @@ -53,15 +59,16 @@ jobs:
--rerun-tasks
-PskipCodeStyle
publish:
# only run the publish task on this repo instead of forks
# only run the publishing task on this repo (not on forks)
if: github.repository_owner == 'grails-plugins' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
needs: [ build ]
needs: build
name: "Publish Snapshot"
runs-on: ubuntu-24.04
steps:
- name: "Output Agent IP" # in the event your agent has network issues, you can use this to debug
run: curl -s https://api.ipify.org
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Export .sdkmanrc properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
with:
Expand All @@ -70,30 +77,33 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.SDKMANRC_java }}
- name: 'Ensure Common Build Date' # to ensure a reproducible build
run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> "$GITHUB_ENV"
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "📤 Publish Gradle Snapshot Artifacts"
env:
GRAILS_PUBLISH_RELEASE: 'false'
MAVEN_PUBLISH_URL: 'https://central.sonatype.com/repository/maven-snapshots/'
MAVEN_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
MAVEN_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
working-directory: './plugin'
run: >
../gradlew publish
--no-build-cache
--rerun-tasks
- name: "📜 Generate Documentation"
if: success()
run: ./gradlew docs
- name: "🚀 Publish to Github Pages"
if: success()
uses: apache/grails-github-actions/deploy-github-pages@asf
env:
GRADLE_PUBLISH_RELEASE: 'false'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Coverage"
name: "Code Coverage"
on:
push:
branches:
Expand All @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Export .sdkmanrc properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
with:
Expand All @@ -24,24 +24,30 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: liberica
java-version: ${{ env.SDKMANRC_java }}
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "🔨 Build and run tests"
run: >
./gradlew build
--continue
--stacktrace
-PskipCodeStyle
- name: "📊 Post coverage summary"
- name: "📊 Post code coverage summary"
if: always()
run: |
REPORT="coverage/build/reports/jacoco/jacocoAggregatedReport/jacocoAggregatedReport.xml"
REPORT="code-coverage/build/reports/jacoco/jacocoAggregatedReport/jacocoAggregatedReport.xml"
if [ ! -f "$REPORT" ]; then
echo "::warning::Coverage report not found at $REPORT"
echo "::warning::Code Coverage report not found at $REPORT"
exit 0
fi

Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/code-style.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Export .sdkmanrc properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
with:
Expand All @@ -24,12 +24,18 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: liberica
java-version: ${{ env.SDKMANRC_java }}
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "🎨 Run code style checks"
run: >
./gradlew codeStyle
Expand Down
49 changes: 34 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ on:
types: [ published ]
permissions: { }
env:
# to prevent throttling of the github api, include the github token in an environment variable since the build will check for it
# To prevent throttling of the GitHub api,
# include the GitHub token in an environment variable
# since the build will check for it
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GRAILS_PUBLISH_RELEASE: 'true'
JAVA_DISTRIBUTION: 'liberica'
Expand All @@ -19,7 +21,7 @@ jobs:
name: "Stage Jar Files"
permissions:
packages: read # pre-release workflow
contents: write # to create release
contents: write # to create a release
issues: write # to modify milestones
runs-on: ubuntu-24.04
steps:
Expand All @@ -28,7 +30,7 @@ jobs:
- name: "Output Agent IP" # in the event RAO blocks this agent, this can be used to debug it
run: curl -s https://api.ipify.org
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ env.TAG }}
Expand All @@ -49,12 +51,18 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.SDKMANRC_java }}
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "⚙️ Run pre-release"
uses: apache/grails-github-actions/pre-release@asf
env:
Expand All @@ -71,7 +79,6 @@ jobs:
./gradlew
-Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
publishMavenPublicationToSonatypeRepository
publishPluginMavenPublicationToSonatypeRepository
closeSonatypeStagingRepository
- name: "Generate Build Date file"
run: echo "$SOURCE_DATE_EPOCH" >> build/BUILD_DATE.txt
Expand All @@ -92,7 +99,7 @@ jobs:
- name: "📝 Establish release version"
run: echo "VERSION=${TAG#v}" >> "$GITHUB_ENV"
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ env.TAG }}
Expand All @@ -104,12 +111,18 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.SDKMANRC_java }}
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "📤 Release staging repository"
env:
NEXUS_PUBLISH_USERNAME: ${{ secrets.MAVEN_USERNAME }}
Expand All @@ -131,7 +144,7 @@ jobs:
- name: "📝 Establish release version"
run: echo "VERSION=${TAG#v}" >> "$GITHUB_ENV"
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ env.TAG }}
Expand All @@ -143,12 +156,18 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.SDKMANRC_java }}
- name: "Export gradle.properties properties"
uses: apache/grails-github-actions/export-gradle-properties@asf
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: ${{ env.ciBuildScanPublish }}
build-scan-terms-of-use-url: ${{ env.ciBuildScanTermsOfUseUrl }}
build-scan-terms-of-use-agree: ${{ env.ciBuildScanTermsOfUseAgree }}
- name: "🔨 Build Documentation"
run: ./gradlew docs
- name: "🚀 Publish to Github Pages"
Expand All @@ -171,7 +190,7 @@ jobs:
- name: "📝 Establish release version"
run: echo "VERSION=${TAG#v}" >> "$GITHUB_ENV"
- name: "📥 Checkout repository"
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ env.TAG }}
Expand All @@ -183,11 +202,11 @@ jobs:
- name: "Determine Java Version"
run: echo "SDKMANRC_java=${{ env.SDKMANRC_java }}" | sed 's/-.*//' >> $GITHUB_ENV
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: ${{ env.JAVA_DISTRIBUTION }}
java-version: ${{ env.SDKMANRC_java }}
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
- name: "⚙️ Run post-release"
uses: apache/grails-github-actions/post-release@asf
25 changes: 15 additions & 10 deletions build-logic/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,28 @@ plugins {
id 'groovy-gradle-plugin'
}

file('../gradle.properties').withInputStream {
Properties props = new Properties()
props.load(it)
project.ext.gradleProperties = props
file('../gradle.properties').withInputStream { is ->
extensions.extraProperties.set(
'gradleProperties',
new Properties().tap { load(is) }
)
}

allprojects {
for (String key : gradleProperties.stringPropertyNames()) {
ext.set(key, gradleProperties.getProperty(key))
allprojects { project ->
gradleProperties.stringPropertyNames().each { key ->
project.extensions.extraProperties.set(
key,
gradleProperties.getProperty(key)
)
}
}

dependencies {
implementation platform("org.apache.grails:grails-bom:${gradleProperties.grailsVersion}")
implementation 'org.apache.grails:grails-gradle-plugins'
implementation "com.adarshr:gradle-test-logger-plugin:${gradleProperties.testLoggerVersion}"
implementation "org.asciidoctor.jvm.convert:org.asciidoctor.jvm.convert.gradle.plugin:${gradleProperties.asciidoctorVersion}"
implementation 'cloud.wondrify:asset-pipeline-gradle'
implementation "com.adarshr:gradle-test-logger-plugin:${gradleProperties.testLoggerVersion}"
implementation 'org.apache.grails:grails-gradle-plugins'
implementation 'org.apache.grails.gradle:grails-publish'
implementation "org.asciidoctor.jvm.convert:org.asciidoctor.jvm.convert.gradle.plugin:${gradleProperties.asciidoctorVersion}"
}

4 changes: 2 additions & 2 deletions build-logic/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import org.gradle.api.initialization.resolve.RepositoriesMode

rootProject.name = "build-logic"
rootProject.name = 'build-logic'

dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS
Expand All @@ -10,4 +10,4 @@ dependencyResolutionManagement {
}
maven { url = 'https://repo.grails.org/grails/restricted' }
}
}
}
12 changes: 12 additions & 0 deletions build-logic/src/main/groovy/config.app-run.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
pluginManager.withPlugin('org.springframework.boot') {
tasks.named('bootRun', JavaExec) {
doFirst {
if (project.hasProperty('debugWait')) {
jvmArgs('-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005')
}
if (project.hasProperty('debug')) {
jvmArgs('-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005')
}
}
}
}
Loading
Loading