Skip to content

Commit f354a23

Browse files
authored
Merge pull request #9 from grails-plugins/grails7
Refactored to Grails 7 (Apache Incubation version)
2 parents 45967e6 + 5cc474f commit f354a23

39 files changed

+630
-454
lines changed

.github/renovate.json

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"extends": [
3+
"config:base"
4+
],
5+
"labels": ["type: dependency upgrade"],
6+
"packageRules": [
7+
{
8+
"matchUpdateTypes": ["major"],
9+
"enabled": false
10+
},
11+
{
12+
"matchPackagePatterns": ["*"],
13+
"allowedVersions": "!/SNAPSHOT$/"
14+
},
15+
{
16+
"matchPackagePatterns": [
17+
"^org\\.codehaus\\.groovy"
18+
],
19+
"groupName": "groovy monorepo"
20+
},
21+
{
22+
"matchPackageNames": [
23+
"org.grails:grails-bom",
24+
"org.grails:grails-bootstrap",
25+
"org.grails:grails-codecs",
26+
"org.grails:grails-console",
27+
"org.grails:grails-core",
28+
"org.grails:grails-databinding",
29+
"org.grails:grails-dependencies",
30+
"org.grails:grails-docs",
31+
"org.grails:grails-encoder",
32+
"org.grails:grails-gradle-model",
33+
"org.grails:grails-logging",
34+
"org.grails:grails-plugin-codecs",
35+
"org.grails:grails-plugin-controllers",
36+
"org.grails:grails-plugin-databinding",
37+
"org.grails:grails-plugin-datasource",
38+
"org.grails:grails-plugin-domain-class",
39+
"org.grails:grails-plugin-i18n",
40+
"org.grails:grails-plugin-interceptors",
41+
"org.grails:grails-plugin-mimetypes",
42+
"org.grails:grails-plugin-rest",
43+
"org.grails:grails-plugin-services",
44+
"org.grails:grails-plugin-url-mappings",
45+
"org.grails:grails-plugin-url-validation",
46+
"org.grails:grails-shell",
47+
"org.grails:grails-spring",
48+
"org.grails:grails-test",
49+
"org.grails:grails-validation",
50+
"org.grails:grails-web",
51+
"org.grails:grails-web-boot",
52+
"org.grails:grails-web-common",
53+
"org.grails:grails-web-databinding",
54+
"org.grails:grails-web-fileupload",
55+
"org.grails:grails-web-mvc",
56+
"org.grails:grails-web-url-mappings"
57+
],
58+
"groupName": "grails monorepo"
59+
}
60+
]
61+
}

.github/workflows/build.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

.github/workflows/gradle.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: "Java CI"
2+
on:
3+
push:
4+
branches:
5+
- '[4-9]+.[0-9]+.x'
6+
pull_request:
7+
branches:
8+
- '[4-9]+.[0-9]+.x'
9+
workflow_dispatch:
10+
jobs:
11+
test_project:
12+
name: "Test Project"
13+
runs-on: ubuntu-24.04
14+
strategy:
15+
fail-fast: true
16+
matrix:
17+
java: [17, 21]
18+
steps:
19+
- name: "📥 Checkout repository"
20+
uses: actions/checkout@v4
21+
- name: "☕️ Setup JDK"
22+
uses: actions/setup-java@v4
23+
with:
24+
java-version: ${{ matrix.java }}
25+
distribution: liberica
26+
- name: "🐘 Setup Gradle"
27+
uses: gradle/actions/setup-gradle@v4
28+
with:
29+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
30+
- name: "🏃 Run tests"
31+
run: ./gradlew check
32+
- name: "🏃 Run integration tests"
33+
working-directory: ./examples/testapp1
34+
run: ./gradlew integrationTest
35+
publish_snapshot:
36+
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
37+
name: "Build Project and Publish Snapshot release"
38+
needs: test_project
39+
runs-on: ubuntu-24.04
40+
permissions:
41+
contents: write # updates gh-pages branch
42+
packages: write # publishes snapshot to GitHub Packages
43+
steps:
44+
- name: "📥 Checkout repository"
45+
uses: actions/checkout@v4
46+
- name: "☕️ Setup JDK"
47+
uses: actions/setup-java@v4
48+
with:
49+
java-version: 17
50+
distribution: liberica
51+
- name: "🐘 Setup Gradle"
52+
uses: gradle/actions/setup-gradle@v4
53+
with:
54+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
55+
- name: "🔨 Build Project"
56+
run: ./gradlew build
57+
- name: "📤 Publish Snapshot version to Artifactory (repo.grails.org)"
58+
env:
59+
GRAILS_PUBLISH_RELEASE: 'false'
60+
MAVEN_PUBLISH_USERNAME: ${{ secrets.MAVEN_PUBLISH_USERNAME }}
61+
MAVEN_PUBLISH_PASSWORD: ${{ secrets.MAVEN_PUBLISH_PASSWORD }}
62+
MAVEN_PUBLISH_URL: 'https://repo.grails.org/artifactory/plugins3-snapshots-local'
63+
run: ./gradlew publish
64+
- name: "📖 Generate Snapshot Documentation"
65+
run: ./gradlew docs
66+
- name: "📤 Publish Snapshot Documentation to Github Pages"
67+
uses: apache/grails-github-actions/deploy-github-pages@asf
68+
env:
69+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70+
GRADLE_PUBLISH_RELEASE: 'false'
71+
SOURCE_FOLDER: build/docs
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: "Release Drafter"
2+
on:
3+
issues:
4+
types: [closed, reopened]
5+
push:
6+
branches:
7+
- master
8+
- '[4-9]+.[0-9]+.x'
9+
pull_request:
10+
types: [opened, reopened, synchronize]
11+
pull_request_target:
12+
types: [opened, reopened, synchronize]
13+
jobs:
14+
update_release_draft:
15+
permissions:
16+
contents: write
17+
pull-requests: write
18+
runs-on: ubuntu-24.04
19+
steps:
20+
- name: "📝 Update Release Draft"
21+
uses: release-drafter/release-drafter@v6
22+
env:
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release.yml

Lines changed: 126 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,130 @@
11
name: Release
22
on:
3-
release:
4-
types: [ published ]
3+
release:
4+
types: [ published ]
5+
env:
6+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7+
JAVA_VERSION: '17.0.15' # this must be a specific version for reproducible builds
8+
RELEASE_TAG_PREFIX: 'v'
59
jobs:
6-
release:
7-
runs-on: ubuntu-latest
10+
publish:
11+
permissions:
12+
packages: read # pre-release workflow
13+
contents: write # to create release
14+
issues: write # to modify milestones
15+
runs-on: ubuntu-latest
16+
outputs:
17+
release_version: ${{ steps.release_version.outputs.value }}
18+
extract_repository_name: ${{ steps.extract_repository_name.outputs.repository_name }}
19+
steps:
20+
- name: "📝 Store the current release version"
21+
id: release_version
22+
run: |
23+
export RELEASE_VERSION="${{ github.ref_name }}"
24+
export RELEASE_VERSION=${RELEASE_VERSION:${#RELEASE_TAG_PREFIX}}
25+
echo "Found Release Version: ${RELEASE_VERSION}"
26+
echo "value=${RELEASE_VERSION}" >> $GITHUB_OUTPUT
27+
- name: "Extract repository name"
28+
id: extract_repository_name
29+
run: |
30+
echo "repository_name=${GITHUB_REPOSITORY##*/}" >> $GITHUB_OUTPUT
31+
- name: "📥 Checkout the repository"
32+
uses: actions/checkout@v4
33+
with:
34+
token: ${{ secrets.GITHUB_TOKEN }}
35+
ref: v${{ steps.release_version.outputs.value }}
36+
- name: 'Ensure Common Build Date' # to ensure a reproducible build
37+
run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> "$GITHUB_ENV"
38+
- name: "Ensure source files use common date"
39+
run: |
40+
find . -depth \( -type f -o -type d \) -exec touch -d "@${SOURCE_DATE_EPOCH}" {} +
41+
- name: "☕️ Setup JDK"
42+
uses: actions/setup-java@v4
43+
with:
44+
distribution: liberica
45+
java-version: ${{ env.JAVA_VERSION }}
46+
- name: "🐘 Setup Gradle"
47+
uses: gradle/actions/setup-gradle@v4
48+
- name: "⚙️ Run pre-release"
49+
uses: grails/github-actions/pre-release@asf
850
env:
9-
GIT_USER_NAME: sbglasius
10-
GIT_USER_EMAIL: [email protected]
11-
steps:
12-
- uses: actions/checkout@v4
13-
with:
14-
token: ${{ secrets.GITHUB_TOKEN }}
15-
- uses: actions/setup-java@v4
16-
with:
17-
java-version: 17
18-
distribution: temurin
19-
- uses: dhkatz/[email protected]
20-
id: get_version
21-
- uses: micronaut-projects/github-actions/pre-release@master
22-
with:
23-
token: ${{ secrets.GITHUB_TOKEN }}
24-
- name: Publish to Sonatype OSSRH
25-
id: publish
26-
uses: gradle/gradle-build-action@v2
27-
env:
28-
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
29-
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
30-
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
31-
SIGN_ARMORED_KEY: ${{ secrets.SIGN_ARMORED_KEY }}
32-
SIGN_PASSWORD: ${{ secrets.SIGNING_PASSPHRASE }}
33-
RELEASE_VERSION: ${{ steps.get_version.outputs.version-without-v }}
34-
with:
35-
arguments: -Pversion=${RELEASE_VERSION} publishToSonatype closeAndReleaseSonatypeStagingRepository
36-
- name: Bump patch version by one
37-
uses: flatherskevin/semver-action@v1
38-
id: version
39-
with:
40-
incrementLevel: patch
41-
source: tags
42-
- name: Set version in gradle.properties
43-
env:
44-
NEXT_VERSION: ${{ steps.version.outputs.nextVersion }}
45-
run: |
46-
echo "Preparing next snapshot"
47-
./gradlew snapshotVersion -Pversion="${NEXT_VERSION}"
48-
- name: Commit & Push changes
49-
uses: actions-js/push@master
50-
with:
51-
github_token: ${{ secrets.GITHUB_TOKEN }}
52-
author_name: ${{ secrets.GIT_USER_NAME }}
53-
author_email: $${ secrets.GIT_USER_EMAIL }}
54-
message: 'Set project version to next SNAPSHOT'
55-
- name: Export Gradle Properties
56-
uses: micronaut-projects/github-actions/export-gradle-properties@master
57-
- name: Run post-release
58-
if: success()
59-
uses: micronaut-projects/github-actions/post-release@master
60-
with:
61-
token: ${{ secrets.GITHUB_TOKEN }}
51+
RELEASE_VERSION: ${{ steps.release_version.outputs.value }}
52+
- name: "🔐 Generate key file for artifact signing"
53+
env:
54+
SECRING_FILE: ${{ secrets.SECRING_FILE }}
55+
run: |
56+
printf "%s" "$SECRING_FILE" | base64 -d > "${{ github.workspace }}/secring.gpg"
57+
- name: "🧩 Run Assemble"
58+
id: assemble
59+
run: |
60+
./gradlew -U assemble -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg -Psigning.keyId=${{ secrets.SIGNING_KEY }}
61+
env:
62+
GRAILS_PUBLISH_RELEASE: 'true'
63+
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
64+
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
65+
- name: "📤 Publish to Maven Central"
66+
env:
67+
GRAILS_PUBLISH_RELEASE: 'true'
68+
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
69+
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
70+
NEXUS_PUBLISH_URL: 'https://ossrh-staging-api.central.sonatype.com/service/local/'
71+
NEXUS_PUBLISH_DESCRIPTION: '${{ steps.extract_repository_name.outputs.repository_name }}:${{ steps.release_version.outputs.value }}'
72+
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
73+
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
74+
run: >
75+
./gradlew
76+
-Psigning.keyId=${{ secrets.SIGNING_KEY }}
77+
-Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
78+
publishMavenPublicationToSonatypeRepository
79+
closeSonatypeStagingRepository
80+
- name: "Generate Build Date file"
81+
run: echo "$SOURCE_DATE_EPOCH" >> build/BUILD_DATE.txt
82+
- name: "Upload Build Date file"
83+
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631
84+
with:
85+
files: build/BUILD_DATE.txt
86+
env:
87+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
88+
release:
89+
needs: publish
90+
runs-on: ubuntu-latest
91+
environment: release
92+
permissions:
93+
contents: write
94+
issues: write
95+
pull-requests: write
96+
steps:
97+
- name: "📥 Checkout repository"
98+
uses: actions/checkout@v4
99+
with:
100+
token: ${{ secrets.GITHUB_TOKEN }}
101+
ref: v${{ needs.publish.outputs.release_version }}
102+
- name: "☕️ Setup JDK"
103+
uses: actions/setup-java@v4
104+
with:
105+
distribution: liberica
106+
java-version: ${{ env.JAVA_VERSION }}
107+
- name: "🐘 Setup Gradle"
108+
uses: gradle/actions/setup-gradle@v4
109+
- name: "📤 Release staging repository"
110+
env:
111+
GRAILS_PUBLISH_RELEASE: 'true'
112+
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
113+
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
114+
NEXUS_PUBLISH_URL: 'https://ossrh-staging-api.central.sonatype.com/service/local/'
115+
NEXUS_PUBLISH_DESCRIPTION: '${{ needs.publish.outputs.extract_repository_name }}:${{ needs.publish.outputs.release_version }}'
116+
run: >
117+
./gradlew
118+
findSonatypeStagingRepository
119+
releaseSonatypeStagingRepository
120+
- name: "📖 Generate Documentation"
121+
run: ./gradlew docs
122+
- name: "📤 Publish Documentation to Github Pages"
123+
uses: apache/grails-github-actions/deploy-github-pages@asf
124+
env:
125+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
126+
GRADLE_PUBLISH_RELEASE: 'true'
127+
SOURCE_FOLDER: build/docs
128+
VERSION: ${{ needs.publish.outputs.release_version }}
129+
- name: "⚙️ Run post-release"
130+
uses: apache/grails-github-actions/post-release@asf

.sdkmanrc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
java=11.0.21-tem
2-
grails=6.1.1
1+
java=17.0.15-librca

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# i18n-enums
1+
# I18nEnums Grails Plugin
22

3-
[![Check and publish snapshot](https://github.com/sbglasius/i18n-enums/actions/workflows/build.yml/badge.svg)](https://github.com/sbglasius/i18n-enums/actions/workflows/build.yml)
3+
[![Check and publish snapshot](https://github.com/grails-plugins/i18n-enums/actions/workflows/build.yml/badge.svg)](https://github.com/grails-plugins/i18n-enums/actions/workflows/build.yml)
44

55
Successor for the Grails 3.x plugin. Now ported to Grails 5.x, 6.x and 7.x
66

77
This plugin adds an annotation usable on Enums to easy add and implement the MessageSourceResolvable interface in an standard way throughout a project.
88

9-
Documentation can be found here: http://sbglasius.github.io/i18n-enums/
9+
Documentation can be found here: http://grails-plugins.github.io/i18n-enums/

0 commit comments

Comments
 (0)