Skip to content

ci: verify release signature against the pinned install key, sign from env - #82

Merged
Jaro-c merged 1 commit into
developfrom
ci/release-verify-gate
Jul 17, 2026
Merged

ci: verify release signature against the pinned install key, sign from env#82
Jaro-c merged 1 commit into
developfrom
ci/release-verify-gate

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Jul 17, 2026

Copy link
Copy Markdown
Member

Prompted by the broken v1.4.0 (signed by the org key while the installer still pinned the retired one — no gate caught it before publish).

  • New verify step in release.yml: after signing each artifact, extract the pinned public key from setup-agent.sh / update-agent.sh / internal/update/mod.rs, assert the three agree, and verify the .sig against it. A signature a freshly-pinned installer would reject fails the build before anything is uploaded. Tested locally: passes on the real v1.4.1 asset with the current pin, fails against the old key.
  • sign.py now reads GLYNDOR_RELEASE_ED25519_KEY from the environment instead of argv, so the signing key never appears in the runner's process table.

Note: release.yml only runs on a tag, so PR CI does not exercise it — the verify logic and pin extraction were validated locally against the published v1.4.1 assets.

…sign from env

Two release-integrity fixes prompted by the broken v1.4.0:

- Gate publishing on the signature verifying against the exact public key
  setup-agent.sh, update-agent.sh and the self-update code pin, and assert
  those three pins agree. A release the installer would reject can no longer
  ship — this is the check that was missing when v1.4.0 went out signed by a
  key its installer no longer trusted.
- Read the signing key from GLYNDOR_RELEASE_ED25519_KEY in sign.py instead of
  passing it as an argv, so it never lands in the runner's process table.

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
@Jaro-c Jaro-c added type:ci CI/CD and automation prio:P1 High priority status:review In review effort:S Small area:update Subsystem: update labels Jul 17, 2026
@Jaro-c
Jaro-c merged commit a31bcb2 into develop Jul 17, 2026
3 checks passed
@Jaro-c
Jaro-c deleted the ci/release-verify-gate branch July 17, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:update Subsystem: update effort:S Small prio:P1 High priority status:review In review type:ci CI/CD and automation

Development

Successfully merging this pull request may close these issues.

1 participant