Skip to content

feat(_release-rust): opt-in GCP-KMS code signing - #97

Merged
emmanuelm41 merged 5 commits into
mainfrom
feat/code-signing
Jun 18, 2026
Merged

feat(_release-rust): opt-in GCP-KMS code signing#97
emmanuelm41 merged 5 commits into
mainfrom
feat/code-signing

Conversation

@emmanuelm41

Copy link
Copy Markdown
Member

Draft — part 2 of a 3-repo code-signing rollout. Depends on Zondax/actions PR #12 (references its actions at @v1.2.0).

What

Adds opt-in OS code signing to _release-rust.yml, default off (no change for existing callers):

  • id-token: write added to the workflow's own top-level permissions: (the ceiling — callers can't grant it otherwise).
  • New inputs (enable_signing, notarize_macos, Apple/CODESIGN/PGP config, jsign_sha256, rcodesign_sha256) and signing secrets:.
  • build job: sign macOS (rcodesign) + Windows (jsign/KMS) before Package; sign the Linux archive (.asc) after Package; upload the .asc.
  • Windows GCP auth uses gcp-wif-auth@v1.2.0 with token_format: access_token, create_credentials_file:false, setup_gcloud:false, verify_authentication:false (token-only).

Rollout / dependency

  1. Zondax/actions Adds reusable workflows for Cloud Run #12 → tag v1.2.0.
  2. This PR → merge → tag v10 (carries runner_windows feat(release-rust): opt-in native Windows runner for real -msvc builds #93 + signing).
  3. kunobi-ninja/kache bumps to _workflows@v10.

Notes

  • actionlint clean (only pre-existing SC2086/SC2129 warnings).
  • WIF must be scoped (per-repo allowlist incl. kunobi-ninja/kache, tag-push only) before any real signed run — infra prerequisite, not in this PR.

emmanuelm41 and others added 2 commits June 17, 2026 19:55
…rgo-xwin)

Opt-in signing (default off). Binaries are signed before packaging:
- macOS: rcodesign + notarize; Apple creds from GCP Secret Manager via CODESIGN_*.
- Windows: Authenticode (jsign + GCP KMS) on the Linux cross-build runner; x64+arm64.
- Linux: TWO detached OpenPGP sigs (kunobi-pgp-kms) — the ELF (.asc bundled inside
  the tarball) AND the .tar.gz archive (.asc uploaded as a release asset).
Adds id-token: write and signing secrets (no Apple secrets).
TEMPORARY — revert to @v1.2.0 before merging (immutable tag). Lets the whole
signing chain compose off the unmerged feat/code-signing branches.
The 'secrets' context can't be referenced in a reusable-workflow 'with:',
so callers (esp. public repos that keep config as secrets) couldn't pass
CODESIGN_*/PGP_SIGN_*. Move those 9 from inputs to the secrets: block and
reference them as secrets.* in the build job.
actions PR #12 merged and tagged v1.2.0 / v1, so promote the signing
composite action refs from the test branch to the released major tag.
@emmanuelm41
emmanuelm41 marked this pull request as ready for review June 18, 2026 17:46
@emmanuelm41
emmanuelm41 merged commit 0febc57 into main Jun 18, 2026
1 check passed
@emmanuelm41
emmanuelm41 deleted the feat/code-signing branch June 18, 2026 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant