Skip to content

Commit d303281

Browse files
ci(openfeature-provider/java): release support (#77)
Co-authored-by: Fabrizio Demaria <[email protected]>
1 parent baeff3e commit d303281

File tree

6 files changed

+46
-23
lines changed

6 files changed

+46
-23
lines changed

.github/workflows/release-please.yml

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ jobs:
3030
config-file: release-please-config.json
3131
manifest-file: .release-please-manifest.json
3232

33+
- name: Debug - Log Release Please outputs
34+
run: |
35+
echo "=== Release Please Outputs ==="
36+
echo "All outputs (JSON):"
37+
echo '${{ toJSON(steps.release.outputs) }}'
38+
echo ""
39+
echo "Key outputs:"
40+
echo "release_created: ${{ steps.release.outputs.release_created }}"
41+
echo "releases_created: ${{ steps.release.outputs.releases_created }}"
42+
echo "tag_name: ${{ steps.release.outputs.tag_name }}"
43+
echo "prs_created: ${{ steps.release.outputs.prs_created }}"
44+
3345
publish-wasm:
3446
needs: release
3547
if: ${{ needs.release.outputs.releases_created == 'true' }}
@@ -131,27 +143,23 @@ jobs:
131143
publish-java-provider-release:
132144
needs: release
133145
runs-on: ubuntu-latest
134-
if: ${{ needs.release.outputs.releases_created == 'true' && contains(needs.release.outputs['openfeature-provider-java--release_created'], 'true') }}
146+
if: ${{ needs.release.outputs.releases_created == 'true' && needs.release.outputs['openfeature-provider-java--release_created'] == 'true' }}
135147
steps:
136148
- name: Checkout release tag
137149
uses: actions/checkout@v4
138150
with:
139151
ref: ${{ needs.release.outputs['openfeature-provider-java--tag_name'] }}
140152

141-
- name: Set up JDK 17
142-
uses: actions/setup-java@v3
153+
- name: Set up Docker Buildx
154+
uses: docker/setup-buildx-action@v3
155+
156+
- name: Publish Java package with Docker
157+
uses: docker/build-push-action@v6
143158
with:
144-
distribution: 'zulu'
145-
java-version: 17
146-
server-id: central
147-
server-username: MAVEN_USERNAME
148-
server-password: MAVEN_PASSWORD
149-
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
150-
gpg-passphrase: GPG_PASS
151-
152-
- name: Deploy with Maven
153-
run: cd openfeature-provider/java && mvn --batch-mode clean deploy
154-
env:
155-
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
156-
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
157-
GPG_PASS: ${{ secrets.SIGN_KEY_PASS }}
159+
context: .
160+
target: openfeature-provider-java.publish
161+
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}/cache:main
162+
secrets: |
163+
"maven_settings=${{ secrets.MAVEN_SETTINGS }}"
164+
gpg_private_key=${{ secrets.GPG_PRIVATE_KEY }}
165+
gpg_pass=${{ secrets.SIGN_KEY_PASS }}

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"confidence-resolver":"0.5.2","confidence-cloudflare-resolver":"0.2.7","wasm-msg":"0.2.0","wasm/rust-guest":"0.1.8","openfeature-provider-java":"0.6.4"}
1+
{"confidence-resolver":"0.5.2","confidence-cloudflare-resolver":"0.2.7","wasm-msg":"0.2.0","wasm/rust-guest":"0.1.8","openfeature-provider/java":"0.6.4"}

Dockerfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,20 @@ FROM openfeature-provider-java-base AS openfeature-provider-java.build
465465

466466
RUN make build
467467

468+
# ==============================================================================
469+
# Publish OpenFeature Provider (Java) to Maven Central
470+
# ==============================================================================
471+
FROM openfeature-provider-java.build AS openfeature-provider-java.publish
472+
473+
# Import GPG private key and deploy to Maven Central
474+
RUN --mount=type=secret,id=maven_settings,target=/root/.m2/settings.xml \
475+
--mount=type=secret,id=gpg_private_key \
476+
--mount=type=secret,id=gpg_pass \
477+
# Import GPG key
478+
cat /run/secrets/gpg_private_key | gpg --batch --import && \
479+
# Deploy to Maven Central
480+
GPG_PASS=$(cat /run/secrets/gpg_pass) mvn --batch-mode deploy
481+
468482
# ==============================================================================
469483
# All - Build and validate everything (default target)
470484
# ==============================================================================

openfeature-provider/java/version.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

openfeature-provider/js/.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@
77
node_modules/
88
src/proto/
99
dist/
10-
.env.test
10+
.env.test
11+
12+
# Dummy Cargo package artifacts (used only for release-please dependency tracking)
13+
Cargo.lock

release-please-config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727
"changelog-path": "CHANGELOG.md",
2828
"initial-version": "0.1.0"
2929
},
30-
"openfeature-provider-java": {
30+
"openfeature-provider/java": {
3131
"path": "openfeature-provider/java",
3232
"release-type": "rust",
3333
"changelog-path": "CHANGELOG.md",
34-
"extra-files": ["pom.xml", "version.txt"]
34+
"extra-files": ["pom.xml"]
3535
}
3636
}
3737
}

0 commit comments

Comments
 (0)