Skip to content

ci: dispatch beta release via execute-workflow instead of inlining#63

Merged
vdusek merged 4 commits intomasterfrom
fix/inline-beta-release-for-pypi
May 7, 2026
Merged

ci: dispatch beta release via execute-workflow instead of inlining#63
vdusek merged 4 commits intomasterfrom
fix/inline-beta-release-for-pypi

Conversation

@vdusek
Copy link
Copy Markdown
Contributor

@vdusek vdusek commented May 6, 2026

Replaces the inlined beta release jobs in on_master.yaml with a single job that dispatches manual_release_beta.yaml via apify/workflows/execute-workflow@main. The dispatched run is a regular workflow_dispatch (not a reusable workflow call), so PyPI's Trusted Publishing accepts the OIDC token, and the duplication is gone.

Also adds a concurrency: release group to manual_release_beta.yaml so two rapid pushes to master cannot race on the version bump and PyPI publish.

Same pattern as apify-client-js, apify-sdk-js, apify-cli, and crawlee.

PyPI's Trusted Publishing rejects OIDC tokens issued from reusable workflows,
so the beta release jobs are inlined into on_master.yaml instead of being
invoked via `uses:` from manual_release_beta.yaml.
@vdusek vdusek added t-tooling Issues with this label are in the ownership of the tooling team. adhoc Ad-hoc unplanned task added during the sprint. labels May 6, 2026
@vdusek vdusek self-assigned this May 6, 2026
@vdusek vdusek requested a review from janbuchar May 6, 2026 07:52
@github-actions github-actions Bot added this to the 140th sprint - Tooling team milestone May 6, 2026
@vdusek vdusek changed the title fix: inline beta release jobs to fix PyPI Trusted Publishing ci: inline beta release jobs to fix PyPI trusted publishing May 6, 2026
vdusek added a commit to apify/crawlee-python that referenced this pull request May 7, 2026
## Summary

PyPI's Trusted Publishing rejects OIDC tokens issued from reusable
workflows:

> The claims in this token suggest that the calling workflow is a
reusable workflow. Reusable workflows are not currently supported by
PyPI's Trusted Publishing.

`on_master.yaml` was invoking `manual_release_beta.yaml` via `uses:`,
which made the OIDC token reflect a reusable workflow call. The same fix
was applied in `apify/apify-shared-python#63`.

## Changes

- `on_master.yaml`: inline the four beta release jobs
(`release_prepare`, `changelog_update`, `pypi_publish`,
`doc_release_post_publish`) directly, instead of calling
`manual_release_beta.yaml` as a reusable workflow.
- `manual_release_beta.yaml`: remove the `workflow_call` trigger (no
longer invoked from another workflow) and add a comment explaining why
the duplication exists.
- Drop the unused `tag_name` output from `release_prepare` in both
files.

## Follow-up

The PyPI Trusted Publisher for `crawlee` is currently configured for
`manual_release_beta.yaml`. After this is merged, an entry for
`on_master.yaml` needs to be added on PyPI so the automatic beta release
passes verification.

See:
https://docs.pypi.org/trusted-publishers/troubleshooting/#reusable-workflows-on-github
Use apify/workflows/execute-workflow@main to trigger manual_release_beta.yaml
as a separate workflow run (not a reusable workflow call), so PyPI's Trusted
Publishing accepts the OIDC token. This removes the duplication between
on_master.yaml and manual_release_beta.yaml introduced by the previous inline
approach.

Add a concurrency group to manual_release_beta.yaml so two rapid pushes to
master cannot race on the version bump and PyPI publish.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vdusek vdusek changed the title ci: inline beta release jobs to fix PyPI trusted publishing ci: dispatch beta release via execute-workflow instead of inlining May 7, 2026
@vdusek vdusek merged commit fecca3a into master May 7, 2026
24 checks passed
@vdusek vdusek deleted the fix/inline-beta-release-for-pypi branch May 7, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants