Gate the test matrix and retry setup-uv's flaky manifest fetch (#3080)
This commit is contained in:
parent
9bdc03d54e
commit
148278e07f
2 changed files with 55 additions and 7 deletions
56
.github/workflows/shared.yml
vendored
56
.github/workflows/shared.yml
vendored
|
|
@ -17,10 +17,23 @@ jobs:
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
# setup-uv's manifest fetch is a single request with a hard 5s timeout
|
||||||
|
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
|
||||||
|
- name: Install uv
|
||||||
|
id: setup-uv
|
||||||
|
continue-on-error: true
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
with:
|
with:
|
||||||
enable-cache: true
|
enable-cache: true
|
||||||
version: 0.9.5
|
version: 0.9.5
|
||||||
|
|
||||||
|
- name: Install uv (retry)
|
||||||
|
if: steps.setup-uv.outcome == 'failure'
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: 0.9.5
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: uv sync --frozen --all-extras --python 3.10
|
run: uv sync --frozen --all-extras --python 3.10
|
||||||
|
|
||||||
|
|
@ -44,8 +57,8 @@ jobs:
|
||||||
name: test (${{ matrix.python-version }}, ${{ matrix.dep-resolution.name }}, ${{ matrix.os }})
|
name: test (${{ matrix.python-version }}, ${{ matrix.dep-resolution.name }}, ${{ matrix.os }})
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
continue-on-error: true
|
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||||
dep-resolution:
|
dep-resolution:
|
||||||
|
|
@ -60,7 +73,18 @@ jobs:
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
|
# setup-uv's manifest fetch is a single request with a hard 5s timeout
|
||||||
|
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
|
id: setup-uv
|
||||||
|
continue-on-error: true
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: 0.9.5
|
||||||
|
|
||||||
|
- name: Install uv (retry)
|
||||||
|
if: steps.setup-uv.outcome == 'failure'
|
||||||
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
with:
|
with:
|
||||||
enable-cache: true
|
enable-cache: true
|
||||||
|
|
@ -92,7 +116,19 @@ jobs:
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
# setup-uv's manifest fetch is a single request with a hard 5s timeout
|
||||||
|
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
|
||||||
|
- name: Install uv
|
||||||
|
id: setup-uv
|
||||||
|
continue-on-error: true
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: 0.9.5
|
||||||
|
|
||||||
|
- name: Install uv (retry)
|
||||||
|
if: steps.setup-uv.outcome == 'failure'
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
with:
|
with:
|
||||||
enable-cache: true
|
enable-cache: true
|
||||||
version: 0.9.5
|
version: 0.9.5
|
||||||
|
|
@ -115,7 +151,19 @@ jobs:
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
# setup-uv's manifest fetch is a single request with a hard 5s timeout
|
||||||
|
# (astral-sh/setup-uv#869); retry once. Drop when upstream adds a retry.
|
||||||
|
- name: Install uv
|
||||||
|
id: setup-uv
|
||||||
|
continue-on-error: true
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: 0.9.5
|
||||||
|
|
||||||
|
- name: Install uv (retry)
|
||||||
|
if: steps.setup-uv.outcome == 'failure'
|
||||||
|
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||||
with:
|
with:
|
||||||
enable-cache: true
|
enable-cache: true
|
||||||
version: 0.9.5
|
version: 0.9.5
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,9 @@ the publish job — `skip-existing` makes it skip whatever already landed. The
|
||||||
commit — and therefore the README PyPI publishes — names the version
|
commit — and therefore the README PyPI publishes — names the version
|
||||||
being released. When entering a new phase (alpha → beta → rc), update
|
being released. When entering a new phase (alpha → beta → rc), update
|
||||||
the banner wording too.
|
the banner wording too.
|
||||||
2. Check the full test matrix is green on the release commit. The matrix runs
|
2. Check the full test matrix is green on the release commit. The publish
|
||||||
with `continue-on-error`, so a green workflow run does not mean the tests
|
workflow re-runs the checks and blocks publishing until they pass, so a
|
||||||
passed — check the individual jobs.
|
red leg there means re-running the failed jobs on the Publishing run.
|
||||||
3. Create the release as a pre-release, passing the exact commit verified in
|
3. Create the release as a pre-release, passing the exact commit verified in
|
||||||
step 2 as `--target` (otherwise the tag is created from whatever `main`'s
|
step 2 as `--target` (otherwise the tag is created from whatever `main`'s
|
||||||
HEAD is by then). The tagged commit determines everything about the
|
HEAD is by then). The tagged commit determines everything about the
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue