Skip to content

Commit f40fac4

Browse files
committed
feat: add Flamingock Java MongoDB template
0 parents  commit f40fac4

62 files changed

Lines changed: 6994 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.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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: ./gradlew clean build
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

.github/workflows/release.yml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
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: ./gradlew clean build
35+
36+
release:
37+
needs: [ build ]
38+
runs-on: ubuntu-latest
39+
steps:
40+
- name: Checkout project
41+
uses: actions/checkout@v4
42+
with:
43+
fetch-depth: 0
44+
45+
- name: Cache Gradle packages
46+
uses: actions/cache@v4
47+
with:
48+
path: |
49+
~/.gradle/caches
50+
~/.gradle/wrapper
51+
~/.gradle/build-cache
52+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
53+
restore-keys: |
54+
${{ runner.os }}-gradle-
55+
56+
- name: Set up Java
57+
uses: graalvm/setup-graalvm@v1
58+
with:
59+
java-version: '17'
60+
distribution: 'graalvm-community'
61+
github-token: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
62+
63+
- name: Set up GPG
64+
run: |
65+
echo "$GPG_SECRET_KEY" > private.asc
66+
gpg --import --batch private.asc
67+
env:
68+
GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
69+
70+
- name: Prepare maven publish
71+
run: ./gradlew publish
72+
env:
73+
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
74+
JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
75+
76+
- name: Release to Maven Central portal
77+
run: ./gradlew jreleaserFullRelease
78+
env:
79+
JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }}
80+
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }}
81+
JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }}
82+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }}
83+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_SECRET_KEY }}
84+
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+
!gradle/wrapper/gradle-wrapper.jar
5+
6+
# IDE
7+
.idea/
8+
*.iml
9+
*.ipr
10+
*.iws
11+
.project
12+
.classpath
13+
.settings/
14+
.vscode/
15+
*.code-workspace
16+
17+
# OS
18+
.DS_Store
19+
Thumbs.db
20+
21+
# Java
22+
*.class
23+
*.jar
24+
!gradle/wrapper/gradle-wrapper.jar
25+
*.war
26+
*.ear
27+
hs_err_pid*
28+
29+
# Logs
30+
*.log
31+
32+
# Test output
33+
test-output/
34+
out/
35+
36+
# Generated files
37+
bin/
38+
target/

0 commit comments

Comments
 (0)