Skip to content

Sign OpenUPM packages during releases - #146

Merged
mackysoft merged 1 commit into
mainfrom
ci/sign-openupm-releases
Oct 20, 2026
Merged

mackysoft merged 1 commit into
mainfrom
ci/sign-openupm-releases

Conversation

@mackysoft

@mackysoft mackysoft commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Sign OpenUPM packages in Release CI using Unity's standalone UPM CLI and service-account credentials.
  • Publish the signed archive through GitHub Release assets instead of letting OpenUPM repack Git source.

Scope

  • Sign the same commit used by the existing example build and .unitypackage export.
  • Require signing credentials and the OpenUPM metadata migration before preparing a version; verify the package manifest and signing attestation before uploading the archive.
  • Preserve draft Releases for release-note review. On publication, use OpenUPM's OIDC action and require a signed registry version.
  • Document the maintainer setup in .github/RELEASING.md.

Verification

  • ShellCheck, bash -n, and git diff --check passed.
  • 10 archive cases cover unchanged accepted bytes, missing/empty attestations, invalid manifests, multiple/missing archives, signer failure, and version mismatch.
  • Credential preflight checks passed without logging credential values; the metadata check accepts Release-asset tracking and rejects Git tracking.
  • Actionlint passed with its outdated checks for the existing create-github-app-token@v3 inputs excluded; the current upstream action definition confirms client-id is valid.
  • Isolated Ubuntu CI signing passed using this PR's exact source commit, UPM CLI v9.35.0, and the configured Unity service account.
  • Downloaded the generated archive: all 94 source files are present, the original manifest fields are preserved, and Unity's added repository revision identifies the tested commit. The attestation's CMS signature verifies; this local check does not evaluate certificate-chain trust.
  • A new tag, public Release, and OpenUPM package version were not created for validation. Full publication will run on the next package release.
  • Unity source and project settings are unchanged; Editor tests are not required.

References

Why
OpenUPM must preserve the publisher's signing attestation instead of repacking Git source.

What Changed
Pack and sign the exact release commit, verify its archive, and attach it to the draft Release. Trigger and confirm signed OpenUPM publication after the Release is published. Check credentials and registry tracking before preparing a version.

Impact
Releases require Unity service-account secrets and the companion OpenUPM metadata migration. The existing Editor build, unitypackage export, and draft review flow are preserved.
@mackysoft
mackysoft marked this pull request as ready for review October 20, 2026 14:03
@mackysoft
mackysoft merged commit 7edb96d into main Oct 20, 2026
3 checks passed
@mackysoft
mackysoft deleted the ci/sign-openupm-releases branch October 21, 2026 08:33
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