Skip to content

Commit c213b8d

Browse files
Refactor GitHub release workflow to attach signed artifacts (#160)
* ci: reorder release pipeline — sign first, then publish to GitHub Fixes OpenSSF Scorecard "Signed-Releases" finding: release artifacts uploaded to GitHub were unsigned. The pipeline now publishes to Maven Central first (GPG-signed via maven-gpg-plugin), collects the signed JARs and .asc files from target/, then attaches them to the GitHub Release so every release asset has a verifiable signature. For java-llama.cpp the release_to_maven_central flag is preserved: - When true: publish-release signs + deploys to Central, then github-release-signed uploads the signed assets to GitHub. - When false/absent: github-release uploads unsigned jars as before. * ci: remove unsigned github-release fallback from java-llama.cpp A GitHub Release is now only created via the signed path: publish-release (GPG sign + Maven Central) -> github-release-signed. The unsigned fallback job is removed for a clean, single-path pipeline.
1 parent ac84fe0 commit c213b8d

1 file changed

Lines changed: 29 additions & 18 deletions

File tree

‎.github/workflows/publish.yml‎

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -739,29 +739,14 @@ jobs:
739739
MAVEN_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
740740
MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN }}
741741

742-
github-release:
743-
name: Attach Binaries to GitHub Release
744-
needs: [check-tag]
745-
if: needs.check-tag.result == 'success'
746-
runs-on: ubuntu-latest
747-
permissions:
748-
contents: write
749-
steps:
750-
- uses: actions/download-artifact@v8
751-
with:
752-
name: llama-jars
753-
path: release-assets/
754-
- name: Upload release assets
755-
uses: softprops/action-gh-release@v3
756-
with:
757-
files: release-assets/*
758-
759742
publish-release:
760743
name: Publish Release to Central
761744
if: needs.check-tag.result == 'success' && github.event.inputs.release_to_maven_central == 'true'
762-
needs: [github-release, check-tag, crosscompile-linux-x86_64-cuda]
745+
needs: [check-tag, crosscompile-linux-x86_64-cuda]
763746
runs-on: ubuntu-latest
764747
environment: maven-central
748+
permissions:
749+
contents: write
765750
steps:
766751
- uses: actions/checkout@v6
767752
- uses: actions/download-artifact@v8
@@ -790,3 +775,29 @@ jobs:
790775
MAVEN_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
791776
MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN }}
792777
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
778+
- name: Collect signed artifacts
779+
run: |
780+
mkdir -p signed-release-assets
781+
cp target/*.jar signed-release-assets/ 2>/dev/null || true
782+
cp target/*.jar.asc signed-release-assets/ 2>/dev/null || true
783+
- uses: actions/upload-artifact@v7
784+
with:
785+
name: signed-release-assets
786+
path: signed-release-assets/
787+
788+
github-release-signed:
789+
name: Attach Signed Binaries to GitHub Release
790+
needs: [publish-release]
791+
if: needs.publish-release.result == 'success'
792+
runs-on: ubuntu-latest
793+
permissions:
794+
contents: write
795+
steps:
796+
- uses: actions/download-artifact@v8
797+
with:
798+
name: signed-release-assets
799+
path: release-assets/
800+
- name: Upload release assets
801+
uses: softprops/action-gh-release@v3
802+
with:
803+
files: release-assets/*

0 commit comments

Comments
 (0)