Skip to content

ci(release): make release.yml the top-level publish workflow - #22

Merged
Bre77 merged 1 commit into
mainfrom
fm/stream-attestation-restore
Aug 6, 2026
Merged

ci(release): make release.yml the top-level publish workflow#22
Bre77 merged 1 commit into
mainfrom
fm/stream-attestation-restore

Conversation

@Bre77

@Bre77 Bre77 commented Aug 6, 2026

Copy link
Copy Markdown
Member

Intent

  • Restore PEP 740 attestations on the PyPI publish step (disabled in ci(release): disable PEP 740 attestations on PyPI publish #21).
    • Root cause of the original failure: release.yml was a reusable workflow_call workflow invoked by a thin tag-triggered python-publish.yml caller, so attestations signed under the caller's identity - which PyPI's trusted-publisher check rejects (400).
    • Fix: fold python-publish.yml's tag trigger and inputs directly into release.yml, making it the sole top-level workflow. It now signs as release.yml itself, matching the identity the PyPI trusted publisher is already configured for.
    • python-publish.yml is deleted; its only job (tag trigger + per-repo input values) now lives in release.yml as the on: push: tags trigger plus env defaults.
    • No PyPI trusted-publisher change is required - the configured release.yml + pypi environment identity now matches both the publisher check and the attestation identity.
    • Gate → environment approval → publish behavior is unchanged; only the workflow-file shape and the attestation flag moved.
    • Updated AGENTS.md's release description to match the new single-workflow shape.

Collapse the tag-triggered caller into release.yml directly and
re-enable PEP 740 attestations. The reusable workflow_call split had
signing identity mismatched against the PyPI trusted publisher
(configured for release.yml + pypi environment), which is why
attestations were disabled. Running release.yml directly restores
the matching identity.
@Bre77 Bre77 added the fm Opened by a Firstmate crewmate label Aug 6, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3ad02c3ff9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

environment:
name: ${{ inputs.environment-name }}
url: ${{ inputs.pypi-project-url }}
name: ${{ env.ENVIRONMENT_NAME }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use a supported context for the environment name

On every matching release tag, GitHub must evaluate this job-level environment name, but env is not available here: GitHub's context-availability table permits only github, needs, strategy, matrix, vars, and inputs for jobs.<job_id>.environment. Consequently, the release workflow is rejected before the protected pypi environment or publish step can run; hardcode pypi here or store it in vars instead.

AGENTS.md reference: AGENTS.md:L17-L17

Useful? React with 👍 / 👎.

@Bre77
Bre77 merged commit edcecff into main Aug 6, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fm Opened by a Firstmate crewmate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant