Skip to content

Commit 6fe5f30

Browse files
authored
Merge pull request #1 from EndeeLabs/dev
Dev
2 parents ccb7788 + dd4e298 commit 6fe5f30

24 files changed

Lines changed: 2894 additions & 1 deletion

.github/workflows/ci.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- dev
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Set up Java
18+
uses: actions/setup-java@v4
19+
with:
20+
distribution: temurin
21+
java-version: '17'
22+
cache: maven
23+
24+
- name: Build and test
25+
run: mvn -B clean verify

.github/workflows/release.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Release to Maven Central
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
12+
permissions:
13+
contents: write
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
token: ${{ secrets.GITHUB_TOKEN }}
21+
22+
- name: Set up Java
23+
uses: actions/setup-java@v4
24+
with:
25+
distribution: temurin
26+
java-version: '17'
27+
server-id: central
28+
server-username: CENTRAL_USERNAME
29+
server-password: CENTRAL_PASSWORD
30+
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
31+
gpg-passphrase: GPG_PASSPHRASE
32+
33+
- name: Configure Git
34+
run: |
35+
git config user.name "github-actions[bot]"
36+
git config user.email "github-actions[bot]@users.noreply.github.com"
37+
38+
- name: Get current version and increment
39+
id: version
40+
run: |
41+
CURRENT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
42+
echo "current=$CURRENT_VERSION" >> $GITHUB_OUTPUT
43+
44+
# Remove -SNAPSHOT if present
45+
RELEASE_VERSION=${CURRENT_VERSION%-SNAPSHOT}
46+
echo "release=$RELEASE_VERSION" >> $GITHUB_OUTPUT
47+
48+
# Calculate next version (increment patch)
49+
IFS='.' read -r major minor patch <<< "$RELEASE_VERSION"
50+
NEXT_VERSION="$major.$minor.$((patch + 1))-SNAPSHOT"
51+
echo "next=$NEXT_VERSION" >> $GITHUB_OUTPUT
52+
53+
- name: Set release version
54+
run: |
55+
mvn versions:set -DnewVersion=${{ steps.version.outputs.release }} -DgenerateBackupPoms=false
56+
57+
- name: Build and verify
58+
run: mvn -B clean verify -Prelease
59+
env:
60+
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
61+
62+
- name: Deploy to Maven Central
63+
run: mvn -B deploy -Prelease -DskipTests
64+
env:
65+
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
66+
CENTRAL_PASSWORD: ${{ secrets.CENTRAL_PASSWORD }}
67+
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
68+
69+
- name: Create Git tag
70+
run: |
71+
git tag -a "v${{ steps.version.outputs.release }}" -m "Release v${{ steps.version.outputs.release }}"
72+
git push origin "v${{ steps.version.outputs.release }}"
73+
74+
- name: Create GitHub Release
75+
uses: softprops/action-gh-release@v1
76+
with:
77+
tag_name: v${{ steps.version.outputs.release }}
78+
name: Release v${{ steps.version.outputs.release }}
79+
generate_release_notes: true
80+
env:
81+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82+
83+
- name: Set next development version
84+
run: |
85+
mvn versions:set -DnewVersion=${{ steps.version.outputs.next }} -DgenerateBackupPoms=false
86+
git add pom.xml
87+
git commit -m "chore: bump version to ${{ steps.version.outputs.next }} [skip ci]"
88+
git push origin main

.github/workflows/snapshot.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Dev Build
2+
3+
on:
4+
push:
5+
branches:
6+
- dev
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
16+
- name: Set up Java
17+
uses: actions/setup-java@v4
18+
with:
19+
distribution: temurin
20+
java-version: '17'
21+
cache: maven
22+
23+
- name: Build and test
24+
run: mvn -B clean verify
25+
26+
- name: Upload build artifacts
27+
uses: actions/upload-artifact@v4
28+
with:
29+
name: endee-java-client-dev
30+
path: target/*.jar
31+
retention-days: 7

.gitignore

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# ==================== Build Output ====================
2+
target/
3+
build/
4+
out/
5+
bin/
6+
*.class
7+
*.jar
8+
*.war
9+
*.ear
10+
*.nar
11+
12+
# ==================== Maven ====================
13+
pom.xml.tag
14+
pom.xml.releaseBackup
15+
pom.xml.versionsBackup
16+
pom.xml.next
17+
release.properties
18+
dependency-reduced-pom.xml
19+
buildNumber.properties
20+
.mvn/timing.properties
21+
.mvn/wrapper/maven-wrapper.jar
22+
23+
# ==================== IDE - IntelliJ IDEA ====================
24+
.idea/
25+
*.iml
26+
*.ipr
27+
*.iws
28+
.idea_modules/
29+
atlassian-ide-plugin.xml
30+
31+
# ==================== IDE - Eclipse ====================
32+
.classpath
33+
.project
34+
.settings/
35+
.metadata/
36+
*.launch
37+
.loadpath
38+
.recommenders/
39+
.externalToolBuilders/
40+
41+
# ==================== IDE - NetBeans ====================
42+
/nbproject/private/
43+
/nbbuild/
44+
/dist/
45+
/nbdist/
46+
/.nb-gradle/
47+
48+
# ==================== IDE - VS Code ====================
49+
.vscode/
50+
*.code-workspace
51+
52+
# ==================== OS Files ====================
53+
.DS_Store
54+
.DS_Store?
55+
._*
56+
.Spotlight-V100
57+
.Trashes
58+
ehthumbs.db
59+
Thumbs.db
60+
desktop.ini
61+
62+
# ==================== Logs ====================
63+
*.log
64+
logs/
65+
66+
# ==================== Environment & Secrets ====================
67+
.env
68+
.env.*
69+
*.env
70+
*.pem
71+
*.key
72+
credentials.json
73+
secrets.json
74+
75+
# ==================== Test Files (Manual Tests) ====================
76+
src/test/
77+
78+
# ==================== Temporary Files ====================
79+
*.tmp
80+
*.temp
81+
*.swp
82+
*.swo
83+
*~
84+
\#*\#
85+
86+
# ==================== Package Manager ====================
87+
node_modules/
88+
89+
# ==================== Coverage Reports ====================
90+
coverage/
91+
*.lcov
92+
jacoco.exec
93+
94+
# AI Tools
95+
.claude

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Endee Labs
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE

0 commit comments

Comments
 (0)