|
25 | 25 | name: wheels-legacy |
26 | 26 |
|
27 | 27 | on: |
28 | | - # MAIN-ONLY build: the legacy cp310/cp311 wheels build on every merge to main — |
29 | | - # like the LTO legs in ci.yml — and via manual dispatch. They NEVER run on PRs, |
30 | | - # so PR latency is unaffected; the slow, lower-priority legacy build is paid only |
31 | | - # post-merge. |
| 28 | + # MAIN-ONLY build by default: the legacy cp310/cp311 wheels build on every merge |
| 29 | + # to main — like the LTO legs in ci.yml — and via manual dispatch. They do NOT run |
| 30 | + # on PRs by default, so PR latency is unaffected; the slow, lower-priority legacy |
| 31 | + # build is paid only post-merge. |
32 | 32 | push: |
33 | 33 | branches: [main] |
34 | 34 | workflow_dispatch: |
| 35 | + # OPT-IN PR validation: add the `ci:legacy` label to a PR to run the legacy build |
| 36 | + # on that PR (and on every subsequent push while the label stays on). Use this to |
| 37 | + # validate changes that touch the legacy wheel path (e.g. the data_model module |
| 38 | + # shim) BEFORE merge, instead of finding out post-merge. The per-job `if` below |
| 39 | + # gates execution on the label being present, so unrelated `labeled` events (any |
| 40 | + # other label) are no-ops. |
| 41 | + pull_request: |
| 42 | + types: [labeled, synchronize, reopened] |
35 | 43 |
|
36 | 44 | concurrency: |
37 | | - group: wheels-legacy-${{ github.ref }} |
| 45 | + group: wheels-legacy-${{ github.event.pull_request.number || github.ref }} |
38 | 46 | cancel-in-progress: true |
39 | 47 |
|
40 | 48 | jobs: |
|
44 | 52 | # ========================================================================= |
45 | 53 | linux: |
46 | 54 | name: legacy linux (manylinux2014, cp310+cp311) |
| 55 | + # On PRs, run only when the `ci:legacy` label is present; push/dispatch always run. |
| 56 | + if: >- |
| 57 | + github.event_name != 'pull_request' || |
| 58 | + contains(github.event.pull_request.labels.*.name, 'ci:legacy') |
47 | 59 | # Two non-abi3 cp legs compiled back-to-back → heavy. Blacksmith 16-vcpu when |
48 | 60 | # FVTK_RUNNER_LINUX is set, else github ubuntu-latest. The manylinux2014 |
49 | 61 | # container build width auto-tracks the runner cores. |
@@ -121,6 +133,10 @@ jobs: |
121 | 133 | # ========================================================================= |
122 | 134 | windows: |
123 | 135 | name: legacy windows (cp310+cp311) |
| 136 | + # On PRs, run only when the `ci:legacy` label is present; push/dispatch always run. |
| 137 | + if: >- |
| 138 | + github.event_name != 'pull_request' || |
| 139 | + contains(github.event.pull_request.labels.*.name, 'ci:legacy') |
124 | 140 | runs-on: ${{ vars.FVTK_RUNNER_WINDOWS || 'windows-latest' }} |
125 | 141 | steps: |
126 | 142 | - uses: actions/checkout@v5 |
|
0 commit comments