Skip to content

Commit 43b3560

Browse files
committed
refactor: move to multi-module gradle project
0 parents  commit 43b3560

65 files changed

Lines changed: 9380 additions & 0 deletions

File tree

Some content is hidden

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

.github/workflows/build-master.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Build Master
2+
on:
3+
push:
4+
branches: [ master, develop, release/* ]
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout project
10+
uses: actions/checkout@v4
11+
12+
- name: Set up Java
13+
uses: graalvm/setup-graalvm@v1
14+
with:
15+
java-version: '17'
16+
distribution: 'graalvm-community'
17+
github-token: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
18+
19+
- name: Unit and Integration tests
20+
run: |
21+
./gradlew clean build \
22+
-Psql.test.dialects=mysql

.github/workflows/build.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Build
2+
on: [pull_request]
3+
jobs:
4+
build:
5+
runs-on: ubuntu-latest
6+
7+
steps:
8+
- name: Checkout project
9+
uses: actions/checkout@v4
10+
11+
- name: Set up Java
12+
uses: graalvm/setup-graalvm@v1
13+
with:
14+
java-version: '17'
15+
distribution: 'graalvm-community'
16+
github-token: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
17+
18+
- name: Unit and Integration tests
19+
run: |
20+
./gradlew clean build \
21+
-Psql.test.dialects=mysql
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Github release
2+
3+
on:
4+
workflow_dispatch:
5+
workflow_call:
6+
secrets:
7+
FLAMINGOCK_JRELEASER_GITHUB_TOKEN:
8+
required: true
9+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME:
10+
required: true
11+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD:
12+
required: true
13+
FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY:
14+
required: true
15+
FLAMINGOCK_JRELEASER_GPG_SECRET_KEY:
16+
required: true
17+
FLAMINGOCK_JRELEASER_GPG_PASSPHRASE:
18+
required: true
19+
20+
jobs:
21+
github-release:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- name: Checkout project
25+
uses: actions/checkout@v2
26+
with:
27+
fetch-depth: 0
28+
29+
- name: Cache Gradle packages
30+
uses: actions/cache@v4
31+
with:
32+
path: |
33+
~/.gradle/caches
34+
~/.gradle/wrapper
35+
~/.gradle/build-cache
36+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
37+
restore-keys: |
38+
${{ runner.os }}-gradle-
39+
40+
- name: Set up Java
41+
uses: graalvm/setup-graalvm@v1
42+
with:
43+
java-version: '17'
44+
distribution: 'graalvm-community'
45+
46+
- name: Publish Release to Github
47+
run: ./gradlew jreleaserRelease --stacktrace --no-daemon
48+
env:
49+
JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
50+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }}
51+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
52+
JRELEASER_GPG_PASSPHRASE: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PASSPHRASE }}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: License Header Check
2+
3+
on:
4+
pull_request:
5+
branches: [ master, develop ]
6+
push:
7+
branches: [ master, develop ]
8+
9+
jobs:
10+
license-check:
11+
runs-on: ubuntu-latest
12+
name: Check License Headers
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Java
19+
uses: graalvm/setup-graalvm@v1
20+
with:
21+
java-version: '17'
22+
distribution: 'graalvm-community'
23+
24+
- name: Setup Gradle
25+
uses: gradle/gradle-build-action@v3
26+
27+
- name: Check license headers
28+
run: ./gradlew spotlessCheck
29+
30+
- name: License check results
31+
if: failure()
32+
run: |
33+
echo "License header check failed!"
34+
echo ""
35+
echo "Some files are missing proper license headers."
36+
echo ""
37+
echo "To fix this issue:"
38+
echo "1. Run './gradlew spotlessApply' to automatically add missing headers"
39+
echo "2. Commit the changes"
40+
echo "3. Push to update your pull request"
41+
echo ""
42+
echo "Or check individual files and add the required license header manually."
43+
exit 1
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Module release(graalVM)
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
module:
7+
description: "The module to be released (empty for mono-project)"
8+
required: false
9+
default: ""
10+
type: string
11+
12+
secrets:
13+
FLAMINGOCK_JRELEASER_GITHUB_TOKEN:
14+
required: true
15+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME:
16+
required: true
17+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD:
18+
required: true
19+
FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY:
20+
required: true
21+
FLAMINGOCK_JRELEASER_GPG_SECRET_KEY:
22+
required: true
23+
FLAMINGOCK_JRELEASER_GPG_PASSPHRASE:
24+
required: true
25+
26+
jobs:
27+
release:
28+
runs-on: ubuntu-latest
29+
steps:
30+
- name: Checkout project
31+
uses: actions/checkout@v2
32+
with:
33+
fetch-depth: 0
34+
35+
- name: Cache Gradle packages
36+
uses: actions/cache@v4
37+
with:
38+
path: |
39+
~/.gradle/caches
40+
~/.gradle/wrapper
41+
~/.gradle/build-cache
42+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
43+
restore-keys: |
44+
${{ runner.os }}-gradle-
45+
46+
- name: Set up Java
47+
uses: graalvm/setup-graalvm@v1
48+
with:
49+
java-version: '17'
50+
distribution: 'graalvm-community'
51+
github-token: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
52+
53+
- name: Set up GPG
54+
run: |
55+
echo "$GPG_SECRET_KEY" > private.asc
56+
gpg --import --batch private.asc
57+
env:
58+
GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
59+
60+
- name: Prepare maven publish
61+
run: |
62+
if [ -n "${{ inputs.module }}" ]; then
63+
./gradlew publish -Pmodule=${{ inputs.module }}
64+
else
65+
./gradlew publish
66+
fi
67+
env:
68+
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
69+
JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
70+
71+
- name: Release to Maven Central portal
72+
run: ./infra/module-release-with-retry.sh ${{ inputs.module }} 5 20
73+
env:
74+
JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
75+
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
76+
JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
77+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }}
78+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
79+
JRELEASER_GPG_PASSPHRASE: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PASSPHRASE }}

.github/workflows/release.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Release
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- master
6+
jobs:
7+
build:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout project
11+
uses: actions/checkout@v4
12+
with:
13+
fetch-depth: 0
14+
15+
- name: Cache Gradle packages
16+
uses: actions/cache@v4
17+
with:
18+
path: |
19+
~/.gradle/caches
20+
~/.gradle/wrapper
21+
~/.gradle/build-cache
22+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
23+
restore-keys: |
24+
${{ runner.os }}-gradle-
25+
26+
- name: Set up Java
27+
uses: graalvm/setup-graalvm@v1
28+
with:
29+
java-version: '17'
30+
distribution: 'graalvm-community'
31+
github-token: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
32+
33+
- name: Unit and Integration tests
34+
run: |
35+
./gradlew clean build \
36+
-Psql.test.dialects=mysql
37+
38+
release:
39+
needs: [build]
40+
uses: ./.github/workflows/module-release-graalvm.yml
41+
secrets:
42+
FLAMINGOCK_JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
43+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
44+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
45+
FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }}
46+
FLAMINGOCK_JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
47+
FLAMINGOCK_JRELEASER_GPG_PASSPHRASE: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PASSPHRASE }}
48+
49+
github-release:
50+
needs: [release]
51+
uses: ./.github/workflows/github-release.yml
52+
secrets:
53+
FLAMINGOCK_JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
54+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
55+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
56+
FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }}
57+
FLAMINGOCK_JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
58+
FLAMINGOCK_JRELEASER_GPG_PASSPHRASE: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PASSPHRASE }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Single Module Release (Ad-hoc)
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
module:
7+
description: 'Module name to release'
8+
required: true
9+
type: string
10+
11+
jobs:
12+
release-module:
13+
uses: ./.github/workflows/module-release-graalvm.yml
14+
with:
15+
module: ${{ inputs.module }}
16+
secrets:
17+
FLAMINGOCK_JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
18+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
19+
FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
20+
FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }}
21+
FLAMINGOCK_JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
22+
FLAMINGOCK_JRELEASER_GPG_PASSPHRASE: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PASSPHRASE }}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Validate Conventional Commits
2+
3+
on:
4+
push:
5+
branches: [develop, master]
6+
pull_request:
7+
branches: [develop, master]
8+
9+
jobs:
10+
commitlint:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v4
15+
16+
- name: Fetch full git history
17+
run: git fetch --prune --unshallow || true
18+
19+
- name: Set up Node.js
20+
uses: actions/setup-node@v4
21+
with:
22+
node-version: '20'
23+
24+
- name: Install commitlint
25+
run: npm install --save-dev @commitlint/config-conventional @commitlint/cli
26+
27+
- name: Create commitlint config
28+
run: |
29+
echo "module.exports = {" > commitlint.config.js
30+
echo " extends: ['@commitlint/config-conventional']," >> commitlint.config.js
31+
echo " rules: {" >> commitlint.config.js
32+
echo " 'subject-case': [2, 'never', []]" >> commitlint.config.js
33+
echo " }" >> commitlint.config.js
34+
echo "};" >> commitlint.config.js
35+
36+
- name: Lint last 20 commits
37+
run: npx commitlint --from=$GITHUB_SHA~1

.gitignore

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Gradle
2+
.gradle/
3+
build/
4+
5+
# IDE
6+
.idea/
7+
*.iml
8+
*.ipr
9+
*.iws
10+
.project
11+
.classpath
12+
.settings/
13+
.vscode/
14+
*.code-workspace
15+
16+
# OS
17+
.DS_Store
18+
Thumbs.db
19+
20+
# Java
21+
*.class
22+
*.jar
23+
*.war
24+
*.ear
25+
hs_err_pid*
26+
27+
# Logs
28+
*.log
29+
30+
# Test output
31+
test-output/
32+
out/
33+
34+
# Generated files
35+
bin/
36+
target/
37+
38+
!gradle/wrapper/gradle-wrapper.jar

.sdkmanrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Enable auto-env through the sdkman_auto_env config
2+
# Add key=value pairs of SDKs to use below
3+
java=17.0.8-graal

0 commit comments

Comments
 (0)