Commit a39c450
authored
fix(ci): stop publishing to PyPI through a reusable workflow (#102)
* fix(ci): stop publishing to PyPI through a reusable workflow
PyPI does not accept a reusable workflow as a trusted publisher --
pypi/warehouse#11096, unresolved. Both publish jobs here called
reqstool/.github's python-publish-to-pypi.yml via workflow_call, so
every real publish attempt failed at the OIDC exchange with
invalid-publisher regardless of what the trusted publisher config
named -- confirmed today, and it explains why publish-dev-to-testpypi.yml
has been failing on every push to main since the 2026-08-16 migration.
Switches both jobs to reqstool/.github's new actions/publish-to-pypi
composite action, called directly from a job defined in this workflow.
A composite action doesn't have the same problem: the OIDC claim is
about which workflow file the job runs in, not what its steps reference.
The two-index environment derivation (testpypi -> test, pypi -> stable)
that the reusable workflow computed internally now has to be explicit
per job -- a composite action can't set the caller's environment:.
Needs reqstool/.github#92 merged first.
Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
* fix(ci): drop Test PyPI entirely rather than fix its trusted publisher
PyPI accepts a pre-release version identifier (0.3.0rc1) on the real
index directly, and pip ignores it without --pre -- there was never a
need to route a release candidate to a separate staging index to hold
it safely. Test PyPI existed here only as that safety net.
publish-to-pypi now runs unconditionally instead of skipping for a
release candidate, which also makes this consistent with what npm and
Maven Central already do. publish-dev-to-testpypi.yml is deleted --
it's been failing on every push to main since the 2026-08-16 migration
anyway (see reqstool/.github#92), and there's nowhere left for it to
publish to.
Needs reqstool/.github#92 merged first.
Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
* fix(ci): pin the publish-to-pypi action reference to a commit
CodeQL flagged actions/unpinned-tag: @main is a mutable ref, so a
compromised or force-pushed reqstool/.github main would execute
through this reference with no review. Pinned to the commit main
pointed at when this action was added, matching the org's existing
`@<sha> # main YYYY-MM-DD` convention for third-party/internal action
references elsewhere in this repo.
Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
---------
Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>1 parent be3cdf6 commit a39c450
2 files changed
Lines changed: 18 additions & 55 deletions
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | 98 | | |
108 | | - | |
109 | | - | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
110 | 103 | | |
111 | | - | |
112 | | - | |
113 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
114 | 109 | | |
115 | 110 | | |
116 | | - | |
117 | | - | |
118 | | - | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
119 | 115 | | |
120 | 116 | | |
121 | 117 | | |
122 | 118 | | |
123 | 119 | | |
124 | 120 | | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
133 | 125 | | |
134 | | - | |
| 126 | + | |
135 | 127 | | |
136 | 128 | | |
137 | 129 | | |
| |||
0 commit comments