Skip to content

Commit b236bdd

Browse files
committed
Init commit
0 parents  commit b236bdd

File tree

71 files changed

+3575
-0
lines changed

Some content is hidden

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

71 files changed

+3575
-0
lines changed

.github/workflows/main-branch.yml

Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
name: Main Branch Workflow
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
7+
jobs:
8+
build-jars:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v4
13+
- name: Set up JDK 17
14+
uses: actions/setup-java@v4
15+
with:
16+
java-version: '17'
17+
distribution: 'temurin'
18+
19+
- name: Setup Gradle
20+
uses: gradle/actions/setup-gradle@v4
21+
22+
- name: Build with Gradle Wrapper
23+
run: ./gradlew build --no-daemon
24+
25+
- name: Extract project name from Gradle
26+
id: extract-name
27+
run: |
28+
PROJECT_NAME=$(./gradlew -q printProjectName --no-daemon)
29+
echo "PROJECT_NAME=${PROJECT_NAME}" >> $GITHUB_ENV
30+
31+
- name: Extract version from Gradle
32+
id: extract-version
33+
run: |
34+
VERSION=$(./gradlew -q printProjectVersion --no-daemon)
35+
echo "VERSION=${VERSION}" >> $GITHUB_ENV
36+
37+
- name: Upload jars
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-jars
41+
path: build/libs/*.jar
42+
43+
- name: Upload JaCoCo test report
44+
uses: actions/upload-artifact@v4
45+
with:
46+
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-test-report
47+
path: build/reports/jacoco/jacocoRootReport/jacocoRootReport.xml
48+
49+
upload-codecov:
50+
runs-on: ubuntu-latest
51+
needs:
52+
- build-jars
53+
54+
steps:
55+
- uses: actions/checkout@v4
56+
- name: Extract project name from Gradle
57+
id: extract-name
58+
run: |
59+
PROJECT_NAME=$(./gradlew -q printProjectName --no-daemon)
60+
echo "PROJECT_NAME=${PROJECT_NAME}" >> $GITHUB_ENV
61+
62+
- name: Extract version from Gradle
63+
id: extract-version
64+
run: |
65+
VERSION=$(./gradlew -q printProjectVersion --no-daemon)
66+
echo "VERSION=${VERSION}" >> $GITHUB_ENV
67+
68+
- name: Download JaCoCo test report
69+
uses: actions/download-artifact@v4
70+
with:
71+
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-test-report
72+
path: artifacts/
73+
74+
- name: Upload coverage to Codecov
75+
uses: codecov/codecov-action@v5
76+
with:
77+
token: ${{ secrets.CODECOV_TOKEN }}
78+
files: ./build/reports/jacoco/test/jacocoTestReport.xml
79+
fail_ci_if_error: true
80+
81+
documentate:
82+
runs-on: ubuntu-latest
83+
84+
steps:
85+
- uses: actions/checkout@v4
86+
- name: Set up JDK 17
87+
uses: actions/setup-java@v4
88+
with:
89+
java-version: '17'
90+
distribution: 'temurin'
91+
92+
- name: Setup Gradle
93+
uses: gradle/actions/setup-gradle@v4
94+
95+
- name: Documentate with Gradle Wrapper
96+
run: ./gradlew documentate --no-daemon
97+
98+
99+
- name: Deploy to GitHub Pages
100+
uses: peaceiris/actions-gh-pages@v4
101+
with:
102+
github_token: ${{ secrets.GITHUB_TOKEN }}
103+
publish_dir: ./build/dokka/htmlMultiModule
104+
publish_branch: gh-pages
105+
106+
create-release:
107+
runs-on: ubuntu-latest
108+
needs:
109+
- build-jars
110+
111+
steps:
112+
- name: Checkout repository
113+
uses: actions/checkout@v4
114+
115+
- name: Extract project name from Gradle
116+
id: extract_name
117+
run: |
118+
PROJECT_NAME=$(./gradlew -q printProjectName)
119+
echo "PROJECT_NAME=${PROJECT_NAME}" >> $GITHUB_ENV
120+
121+
- name: Extract version from Gradle
122+
id: get-version
123+
run: |
124+
VERSION=$(./gradlew -q printProjectVersion)
125+
echo "VERSION=${VERSION}" >> $GITHUB_ENV
126+
127+
- name: Download jars
128+
uses: actions/download-artifact@v4
129+
with:
130+
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-jars
131+
path: artifacts/
132+
133+
- name: Release
134+
uses: softprops/action-gh-release@v2
135+
if: false
136+
with:
137+
tag_name: ${{ env.VERSION }}
138+
body_path: ./CHANGELOG.md
139+
files: |
140+
artifacts/*
141+
142+
publish:
143+
runs-on: ubuntu-latest
144+
needs:
145+
- create-release
146+
147+
permissions:
148+
contents: read
149+
packages: write
150+
151+
steps:
152+
- name: Checkout source
153+
uses: actions/checkout@v4
154+
155+
- name: Set up JDK 17
156+
uses: actions/setup-java@v4
157+
with:
158+
distribution: 'temurin'
159+
java-version: '17'
160+
161+
- name: Configure Gradle
162+
uses: gradle/gradle-build-action@v3
163+
164+
- name: Publish to GitHub Packages
165+
run: ./gradlew publish --no-daemon
166+
env:
167+
PGP_PRIVATE_KEY: ${{ secrets.PGP_PRIVATE_KEY }}
168+
PGP_PRIVATE_KEY_PASSWORD: ${{ secrets.PGP_PRIVATE_KEY_PASSWORD }}
169+
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
170+
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
171+
GITHUB_REPO: ${{ github.repository }}
172+
GITHUB_USERNAME: ${{ github.actor }}
173+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
174+
175+
dependency-submission:
176+
runs-on: ubuntu-latest
177+
permissions:
178+
contents: write
179+
180+
steps:
181+
- uses: actions/checkout@v4
182+
- name: Set up JDK 17
183+
uses: actions/setup-java@v4
184+
with:
185+
java-version: '17'
186+
distribution: 'temurin'
187+
188+
# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
189+
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
190+
- name: Generate and submit dependency graph
191+
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
192+
193+
generate-git-badges:
194+
name: Generate Git Badges
195+
runs-on: ubuntu-latest
196+
permissions:
197+
contents: write
198+
199+
steps:
200+
- name: Checkout repository
201+
uses: actions/checkout@v4
202+
203+
- name: Output git info
204+
id: git_info
205+
run: |
206+
function format_size { echo $(numfmt --to iec --suffix B $1); }
207+
function format_number { LC_ALL=en_US.UTF-8 printf "%'d\n" $1; }
208+
echo "file_count=$(format_number $(git ls-files | wc -l))" >> $GITHUB_OUTPUT
209+
echo "lines_of_code=$(find . -type f -name "*.kt" -exec wc -l {} + | awk '{s+=$1} END {print s}')" >> $GITHUB_OUTPUT
210+
git gc
211+
echo "size=$(format_size $(($(git count-objects -v | grep 'size-pack: ' | sed 's/size-pack: //g' | tr -d '\n') * 1024)))" >> $GITHUB_OUTPUT
212+
shell: bash
213+
214+
- name: Generate-Badge
215+
uses: likespro/generate-badge@v1
216+
with:
217+
token: ${{ secrets.GITHUB_TOKEN }}
218+
filename: |
219+
(
220+
"git-size"
221+
"git-file-count"
222+
"git-lines-of-code"
223+
)
224+
label: ("size" "files" "lines-of-code")
225+
message: |
226+
(
227+
"${{ steps.git_info.outputs.size }}"
228+
"${{ steps.git_info.outputs.file_count }}"
229+
"${{ steps.git_info.outputs.lines_of_code }}"
230+
)
231+
namedLogo: ("git" "git" "git")
232+
color: ("f1502f" "f1502f" "f1502f")

.gitignore

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
.gradle
2+
build/
3+
!gradle/wrapper/gradle-wrapper.jar
4+
!**/src/main/**/build/
5+
!**/src/test/**/build/
6+
.kotlin/
7+
8+
### IntelliJ IDEA ###
9+
.idea/modules.xml
10+
.idea/jarRepositories.xml
11+
.idea/compiler.xml
12+
.idea/libraries/
13+
*.iws
14+
*.iml
15+
*.ipr
16+
out/
17+
!**/src/main/**/out/
18+
!**/src/test/**/out/
19+
20+
### Eclipse ###
21+
.apt_generated
22+
.classpath
23+
.factorypath
24+
.project
25+
.settings
26+
.springBeans
27+
.sts4-cache
28+
bin/
29+
!**/src/main/**/bin/
30+
!**/src/test/**/bin/
31+
32+
### NetBeans ###
33+
/nbproject/private/
34+
/nbbuild/
35+
/dist/
36+
/nbdist/
37+
/.nb-gradle/
38+
39+
### VS Code ###
40+
.vscode/
41+
42+
### Mac OS ###
43+
.DS_Store

.idea/.gitignore

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

.idea/.name

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

.idea/gradle.xml

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

.idea/kotlinc.xml

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

.idea/misc.xml

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

.idea/vcs.xml

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

0 commit comments

Comments
 (0)