Skip to content

Commit 148278e

Browse files
authored
Gate the test matrix and retry setup-uv's flaky manifest fetch (#3080)
1 parent 9bdc03d commit 148278e

2 files changed

Lines changed: 55 additions & 7 deletions

File tree

.github/workflows/shared.yml

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,23 @@ jobs:
1717
with:
1818
persist-credentials: false
1919

20-
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
20+
# setup-uv's manifest fetch is a single request with a hard 5s timeout
21+
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
22+
- name: Install uv
23+
id: setup-uv
24+
continue-on-error: true
25+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
26+
with:
27+
enable-cache: true
28+
version: 0.9.5
29+
30+
- name: Install uv (retry)
31+
if: steps.setup-uv.outcome == 'failure'
32+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
2133
with:
2234
enable-cache: true
2335
version: 0.9.5
36+
2437
- name: Install dependencies
2538
run: uv sync --frozen --all-extras --python 3.10
2639

@@ -44,8 +57,8 @@ jobs:
4457
name: test (${{ matrix.python-version }}, ${{ matrix.dep-resolution.name }}, ${{ matrix.os }})
4558
runs-on: ${{ matrix.os }}
4659
timeout-minutes: 10
47-
continue-on-error: true
4860
strategy:
61+
fail-fast: false
4962
matrix:
5063
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
5164
dep-resolution:
@@ -60,7 +73,18 @@ jobs:
6073
with:
6174
persist-credentials: false
6275

76+
# setup-uv's manifest fetch is a single request with a hard 5s timeout
77+
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
6378
- name: Install uv
79+
id: setup-uv
80+
continue-on-error: true
81+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
82+
with:
83+
enable-cache: true
84+
version: 0.9.5
85+
86+
- name: Install uv (retry)
87+
if: steps.setup-uv.outcome == 'failure'
6488
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
6589
with:
6690
enable-cache: true
@@ -92,7 +116,19 @@ jobs:
92116
with:
93117
persist-credentials: false
94118

95-
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
119+
# setup-uv's manifest fetch is a single request with a hard 5s timeout
120+
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
121+
- name: Install uv
122+
id: setup-uv
123+
continue-on-error: true
124+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
125+
with:
126+
enable-cache: true
127+
version: 0.9.5
128+
129+
- name: Install uv (retry)
130+
if: steps.setup-uv.outcome == 'failure'
131+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
96132
with:
97133
enable-cache: true
98134
version: 0.9.5
@@ -115,7 +151,19 @@ jobs:
115151
with:
116152
persist-credentials: false
117153

118-
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
154+
# setup-uv's manifest fetch is a single request with a hard 5s timeout
155+
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
156+
- name: Install uv
157+
id: setup-uv
158+
continue-on-error: true
159+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
160+
with:
161+
enable-cache: true
162+
version: 0.9.5
163+
164+
- name: Install uv (retry)
165+
if: steps.setup-uv.outcome == 'failure'
166+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
119167
with:
120168
enable-cache: true
121169
version: 0.9.5

RELEASE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ the publish job — `skip-existing` makes it skip whatever already landed. The
3939
commit — and therefore the README PyPI publishes — names the version
4040
being released. When entering a new phase (alpha → beta → rc), update
4141
the banner wording too.
42-
2. Check the full test matrix is green on the release commit. The matrix runs
43-
with `continue-on-error`, so a green workflow run does not mean the tests
44-
passed — check the individual jobs.
42+
2. Check the full test matrix is green on the release commit. The publish
43+
workflow re-runs the checks and blocks publishing until they pass, so a
44+
red leg there means re-running the failed jobs on the Publishing run.
4545
3. Create the release as a pre-release, passing the exact commit verified in
4646
step 2 as `--target` (otherwise the tag is created from whatever `main`'s
4747
HEAD is by then). The tagged commit determines everything about the

0 commit comments

Comments
 (0)