Repository navigation
Conversation
Add a manual release workflow and four composite actions mirrored from mongodb-labs/drivers-github-tools@v3: a GPG-signed tag and detached signatures created in the Garasign container, PyPI upload through trusted publishing with no stored token, build provenance, and a draft GitHub Release carrying the distributions, their .sig files, and an authorized-publication record with SHA-256 sums. Additive to release-python.yml and manual-only; dry_run defaults to true. Per-repository knobs are PRODUCT_NAME, PACKAGE_DIR, and TAG_PREFIX. docs/release/signed-release-pipeline.md records the one-time setup and what was trimmed relative to mongo-python-driver.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a manual, drop-in signed-release pipeline covering the three controls required for the ABX launch:
.sigsignatures over every distribution, both created inside the Garasign container.pypa/gh-action-pypi-publishwith trusted publishing; no PyPI token is stored anywhere..sigfiles, and anauthorized-publication.txtrecord (releaser, commit, SHA-256 of every artifact).The four composite actions under
.github/actions/mirrormongodb-labs/drivers-github-tools@v3(setup,git-sign,gpg-sign,authorized-pub+ the draft-release step ofpython/post-publish), but are self-contained local files so this repo has no dependency on that external repo.This is additive to
release-python.yml(the existing manifest-driven coordinator), which is unchanged. Before the first real release, pick which workflow is canonical — a PyPI trusted publisher is bound to one workflow filename (both can be registered).Flow
Every job after
preparechecks outneeds.prepare.outputs.sha, so the tag, the built files, the PyPI upload, and the signatures all describe one commit.Porting to other repos
Only three values need to change, in
release.yml'senv:block:See
docs/release/signed-release-pipeline.mdfor the full setup checklist and the list of what was deliberately trimmed relative tomongo-python-driver's release pipeline (Kondukto SBOM augmentation, SSDLC compliance report, S3 upload, multi-platform wheel matrix — none of which this repo needs yet).One-time setup required before this can run for real
AWS_ROLE_ARN,AWS_REGION,AWS_SECRET_IDgarasign-username,garasign-password,gpg-key-id(gpg-public-urloptional)ecr-role-gha-ropull role)releaseGitHub environment with required reviewersrelease.yml/releaseenvironmentValidation
dry_run: true) exercised once the secrets/environment above exist — not yet runnable from this PR aloneTODOleft onactions/attest-build-provenance@v4— this repo pins everything else to a full SHA; flagging for reviewer input on the intended pin before merge