Skip to content

Commit 9527d51

Browse files
authored
Merge pull request #132 from gpc/grails7
Grails 7
2 parents 4465ebf + e31f326 commit 9527d51

File tree

129 files changed

+2841
-2423
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+2841
-2423
lines changed

.github/renovate.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": ["config:recommended"]
4+
}

.github/workflows/gradle.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: "Java CI"
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- '[0-9]+.x'
7+
pull_request:
8+
branches:
9+
- master
10+
- '[0-9]+.x'
11+
workflow_dispatch:
12+
permissions:
13+
packages: read
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: false
17+
jobs:
18+
tests:
19+
if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }}
20+
name: "Test"
21+
runs-on: ubuntu-24.04
22+
container: ubuntu
23+
services:
24+
postgres:
25+
image: postgres
26+
env:
27+
POSTGRES_DB: pg_extensions_test
28+
POSTGRES_USER: postgres_extensions
29+
POSTGRES_PASSWORD: postgres_extensions
30+
ports:
31+
- 5432:5432
32+
options: >-
33+
--health-cmd "pg_isready -U postgres_extensions -d pg_extensions_test"
34+
--health-interval 10s
35+
--health-timeout 5s
36+
--health-retries 5
37+
steps:
38+
- name: Install psql client
39+
env:
40+
DEBIAN_FRONTEND: noninteractive
41+
run: |
42+
apt-get update
43+
apt-get install -y --no-install-recommends postgresql-client
44+
- name: Create extensions
45+
env:
46+
PGPASSWORD: postgres_extensions
47+
run: |
48+
until pg_isready -h postgres -p 5432 -U postgres_extensions -d pg_extensions_test; do sleep 1; done
49+
psql -h postgres -U postgres_extensions -d pg_extensions_test -c "CREATE EXTENSION IF NOT EXISTS hstore;"
50+
- name: "📥 Checkout repository"
51+
uses: actions/checkout@v5
52+
- name: "☕️ Setup JDK"
53+
uses: actions/setup-java@v5
54+
with:
55+
java-version: 17
56+
distribution: liberica
57+
- name: "🐘 Setup Gradle"
58+
uses: gradle/actions/setup-gradle@v4
59+
with:
60+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
61+
- name: "🏃‍♂️ Run Checks"
62+
id: build
63+
env:
64+
POSTGRES_HOST: postgres
65+
POSTGRES_PORT: 5432
66+
run: ./gradlew check --continue
67+
publish_snapshot:
68+
needs: tests
69+
if: ${{ always() && github.repository_owner == 'gpc' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && (needs.tests.result == 'success' || needs.tests.result == 'skipped') }}
70+
runs-on: ubuntu-24.04
71+
permissions:
72+
contents: write
73+
steps:
74+
- name: "📥 Checkout repository"
75+
uses: actions/checkout@v4
76+
- name: "☕️ Setup JDK"
77+
uses: actions/setup-java@v4
78+
with:
79+
java-version: 17
80+
distribution: liberica
81+
- name: "🐘 Setup Gradle"
82+
uses: gradle/actions/setup-gradle@v4
83+
with:
84+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
85+
- name: "📤 Publish Snapshot Artifacts"
86+
env:
87+
GRAILS_PUBLISH_RELEASE: 'false'
88+
MAVEN_PUBLISH_URL: ${{ secrets.MAVEN_PUBLISH_SNAPSHOT_URL }}
89+
MAVEN_PUBLISH_USERNAME: ${{ secrets.MAVEN_PUBLISH_USERNAME }}
90+
MAVEN_PUBLISH_PASSWORD: ${{ secrets.MAVEN_PUBLISH_PASSWORD }}
91+
run: ./gradlew --no-build-cache publish
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: "Release Drafter"
2+
on:
3+
issues:
4+
types: [closed, reopened]
5+
push:
6+
branches:
7+
- 'master'
8+
- '[0-9]+.x'
9+
pull_request:
10+
types: [opened, reopened, synchronize]
11+
pull_request_target:
12+
types: [opened, reopened, synchronize]
13+
workflow_dispatch:
14+
jobs:
15+
update_release_draft:
16+
permissions:
17+
contents: write
18+
pull-requests: write
19+
runs-on: ubuntu-24.04
20+
steps:
21+
- name: "📝 Update Release Draft"
22+
uses: release-drafter/release-drafter@v6
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release.yml

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
name: Release
2+
on:
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'
9+
jobs:
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-24.04
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+
with:
49+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
50+
- name: "⚙️ Run pre-release"
51+
uses: apache/grails-github-actions/pre-release@asf
52+
env:
53+
RELEASE_VERSION: ${{ steps.release_version.outputs.value }}
54+
- name: "🔐 Generate key file for artifact signing"
55+
env:
56+
SECRING_FILE: ${{ secrets.SECRING_FILE }}
57+
run: |
58+
printf "%s" "$SECRING_FILE" | base64 -d > "${{ github.workspace }}/secring.gpg"
59+
- name: "🧩 Run Assemble"
60+
id: assemble
61+
run: |
62+
./gradlew -U assemble -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg -Psigning.keyId=${{ secrets.SIGNING_KEY }}
63+
env:
64+
GRAILS_PUBLISH_RELEASE: 'true'
65+
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
66+
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
67+
- name: "📤 Publish to Maven Central"
68+
env:
69+
GRAILS_PUBLISH_RELEASE: 'true'
70+
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
71+
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
72+
NEXUS_PUBLISH_URL: ${{ secrets.NEXUS_PUBLISH_RELEASE_URL }}
73+
NEXUS_PUBLISH_DESCRIPTION: '${{ steps.extract_repository_name.outputs.repository_name }}:${{ steps.release_version.outputs.value }}'
74+
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
75+
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
76+
run: >
77+
./gradlew
78+
-Psigning.keyId=${{ secrets.SIGNING_KEY }}
79+
-Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
80+
publishMavenPublicationToSonatypeRepository
81+
closeSonatypeStagingRepository
82+
- name: "Generate Build Date file"
83+
run: echo "$SOURCE_DATE_EPOCH" >> build/BUILD_DATE.txt
84+
- name: "Upload Build Date file"
85+
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631
86+
with:
87+
tag_name: ${{ github.event.release.tag_name }}
88+
files: build/BUILD_DATE.txt
89+
env:
90+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
91+
release:
92+
needs: publish
93+
runs-on: ubuntu-24.04
94+
environment: release
95+
permissions:
96+
contents: write
97+
issues: write
98+
pull-requests: write
99+
steps:
100+
- name: "📥 Checkout repository"
101+
uses: actions/checkout@v4
102+
with:
103+
token: ${{ secrets.GITHUB_TOKEN }}
104+
ref: v${{ needs.publish.outputs.release_version }}
105+
- name: "☕️ Setup JDK"
106+
uses: actions/setup-java@v4
107+
with:
108+
distribution: liberica
109+
java-version: ${{ env.JAVA_VERSION }}
110+
- name: "🐘 Setup Gradle"
111+
uses: gradle/actions/setup-gradle@v4
112+
- name: "📤 Release staging repository"
113+
env:
114+
GRAILS_PUBLISH_RELEASE: 'true'
115+
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
116+
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
117+
NEXUS_PUBLISH_URL: ${{ secrets.NEXUS_PUBLISH_RELEASE_URL }}
118+
NEXUS_PUBLISH_DESCRIPTION: '${{ needs.publish.outputs.extract_repository_name }}:${{ needs.publish.outputs.release_version }}'
119+
run: >
120+
./gradlew
121+
findSonatypeStagingRepository
122+
releaseSonatypeStagingRepository
123+
- name: "📖 Generate Documentation"
124+
if: ${{ hashFiles('src/main/asciidoc/**') != '' }}
125+
run: ./gradlew docs
126+
- name: "📤 Publish Documentation to Github Pages"
127+
uses: apache/grails-github-actions/deploy-github-pages@asf
128+
if: ${{ hashFiles('src/main/asciidoc/**') != '' }}
129+
env:
130+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
131+
GRADLE_PUBLISH_RELEASE: 'true'
132+
SOURCE_FOLDER: build/docs
133+
VERSION: ${{ needs.publish.outputs.release_version }}
134+
- name: "⚙️ Run post-release"
135+
uses: apache/grails-github-actions/post-release@asf

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ plugin.xml
1212
grails-postgresql-extensions-*.zip
1313
grails-postgresql-extensions-*.zip.sha1
1414
/.idea
15+
!/.idea/codeStyles
16+
!.idea/codeStyles/Project.xml
17+
!.idea/codeStyles/codeStyleConfig.xml
1518
*.iml
1619
*.swp
1720
*.ids

.idea/codeStyles/Project.xml

Lines changed: 95 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/codeStyles/codeStyleConfig.xml

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.sdkmanrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Enable auto-env through the sdkman_auto_env config - https://sdkman.io/usage#env
2+
java=17.0.15-librca

0 commit comments

Comments
 (0)