Repository navigation
ci: add build-sign job to CircleCI CICD workflow [IDE-2483] - #460
Conversation
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
This comment has been minimized.
This comment has been minimized.
Milestone 1 of migrating S3 publishing off static AWS keys onto CircleCI OIDC (IDE-2483). Adds a Linux job that mirrors GH Actions' decode-keystore step and runs `./mvnw clean verify -P sign`, so that once KEYSTORE, KEYSTORE_SHA and KEYSTORE_PASS are populated in CircleCI, we can confirm the signing plumbing works before adding the OIDC-authenticated S3 publish in a follow-up PR. Each of KEYSTORE, KEYSTORE_SHA and KEYSTORE_PASS fails the step loudly if unset or empty, instead of surfacing as a confusing jarsigner error later. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…n IDE-2483 Adds a type: approval job (Approve signing job) in front of build-sign and restricts both to main only. Follows ProdSec's documented pattern for restricted-context jobs (PRODSEC-10865): merging to main still builds/tests as before, but the signing context is only touched once a Team IDE member approves the job. Without this, any contributor's merge to main could trigger the real signing secrets unapproved. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Needed to ensure permissions change the the approver's for the snyk-eclipse-plugin-signing context.
f484afa to
51218bd
Compare
This comment has been minimized.
This comment has been minimized.
nick-y-snyk
left a comment
There was a problem hiding this comment.
Looks good. The up-front variable checks and the checksum verification make failures easy to read, and keystore.jks stays out of the workspace.
Nit: the KEYSTORE_PASS check runs after the keystore is decoded. Moving it up next to the other two means a missing password fails before any work happens.
I'd argue it's cleaner to have it right next to the use and the work done isn't real costly work anyway. |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
PR Reviewer Guide 🔍
|

Description
Milestone 1 of migrating snyk-eclipse-plugin's S3 publishing off static AWS keys onto CircleCI OIDC (IDE-2483).
Adds a
build-signCircleCI job that decodes theKEYSTORE/KEYSTORE_SHAsecrets, verifies the checksum, and runs./mvnw clean verify -P sign(confirmed green) — proving the Maven signing profile works with the keystore secrets copied from GitHub Actions into CircleCI. Each ofKEYSTORE,KEYSTORE_SHA,KEYSTORE_PASSfails the step loudly if unset or empty, rather than surfacing as a confusingjarsignererror later.build-signonly runs onmain, gated behind a manual approval step (Approve signing job). The CircleCI context holding the signing secrets is restricted, so without an approval gate, any contributor's merge tomainwould trigger a job that uses those secrets unattended. The gate lets code still build and test normally for every contributor, but requires an explicit approval before the signing step itself runs.Out of scope for this PR (tracked as later milestones on IDE-2483): S3 publish itself, the
aws-cliOIDC orb, and removing the GitHub Actions publish steps.Checklist
Screenshots / GIFs
N/A — CI config change.
PR Stack — Merge Order
flowchart LR main(["main"]) PR1["#460 build-sign ← YOU ARE HERE\nCircleCI signing"] PR2["#462 publish-preview\nCircleCI OIDC publish"] PR3["#463 stable-release scaffold\nworkflow + build-sign-stable"] PR4["#468 publish-stable\nOIDC publish, DO NOT MERGE yet"] PR5["#465 remove legacy workflow\nDO NOT MERGE yet"] main --> PR1 --> PR2 --> PR3 --> PR4 --> PR5 style PR1 fill:#ffd700,color:#000🤖 Generated with Claude Code
Note
Low Risk
CI and workflow-only change; signing secrets are gated behind manual approval on main with no application or runtime behavior changes.
Overview
Adds a
build-signCircleCI job (main only) that decodes and checksum-validates signing keystore secrets, then runs./mvnw clean verify -P signusing the restrictedsnyk-eclipse-plugin-signingcontext. Secret env vars (KEYSTORE,KEYSTORE_SHA,KEYSTORE_PASS) are checked up front so missing values fail clearly instead of deep injarsigner.The CICD workflow now includes a manual
Approve signing jobapproval step beforebuild-sign, so merges to main still run the existing test jobs for everyone, but using signing credentials requires an explicit approver. This is the first CI milestone toward moving Eclipse plugin publishing off static AWS keys (S3/OIDC work is later).Reviewed by Cursor Bugbot for commit 88f538c. Bugbot is set up for automated code reviews on this repo. Configure here.