Skip to content

Commit c2e07d3

Browse files
authored
ci: Cleanup change filters for CI triggers (#2034)
- Adds the workspace rust config to the changes that trigger pg-lib checks - Renames the `rust` and `rust-core` groups to `tket` and `tket-core` - Triggers `rs-semver-checks` when `pg-libs` has changes, not just `tket` - drive-by: Re-enables the temporarily disabled `extension-versions` required check
1 parent 7321bf0 commit c2e07d3

4 files changed

Lines changed: 35 additions & 27 deletions

File tree

‎.github/actions/check-changes/action.yml‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@ outputs:
1818
pg-libs:
1919
description: "The pg-libs crates or shared workspace configuration have changed"
2020
value: ${{ steps.override.outputs.out == 'true' || steps.change-filters.outputs.pg-libs == 'true' }}
21-
rust:
22-
description: "Rust files have changed"
23-
value: ${{ steps.override.outputs.out == 'true' || steps.change-filters.outputs.rust == 'true' }}
2421
rust-core:
25-
description: "The main tket rust library has changed"
22+
description: "The shared Rust workspace configuration has changed"
2623
value: ${{ steps.override.outputs.out == 'true' || steps.change-filters.outputs.rust-core == 'true' }}
24+
tket:
25+
description: "The tket Rust crates or shared workspace configuration have changed"
26+
value: ${{ steps.override.outputs.out == 'true' || steps.change-filters.outputs.tket == 'true' }}
27+
tket-core:
28+
description: "The main tket Rust library or shared workspace configuration has changed"
29+
value: ${{ steps.override.outputs.out == 'true' || steps.change-filters.outputs.tket-core == 'true' }}
2730
python:
2831
description: "Python files have changed"
2932
value: ${{ steps.override.outputs.out == 'true' || steps.change-filters.outputs.python == 'true' }}

‎.github/change-filters.yml‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
# to detect changes in each subproject, and only run the corresponding jobs.
33

44
rust-core: &rust-core
5-
- "tket/tket-rs/**"
65
- "Cargo.toml"
76
- "Cargo.lock"
87
- "rust-toolchain.toml"
98
- "hugrenv.lock"
109

11-
rust:
10+
tket-core: &tket-core
1211
- *rust-core
12+
- "tket/tket-rs/**"
13+
14+
tket:
15+
- *tket-core
1316
- "tket/tket-qsystem/**"
1417
- "tket/badger-optimiser/**"
1518
- "tket/compile-rewriter/**"
@@ -18,17 +21,15 @@ rust:
1821
- "tket/qis-compiler/Cargo.toml"
1922

2023
pg-libs:
24+
- *rust-core
2125
- "pg-libs/**"
2226
- "justfile"
2327
- "devenv.nix"
24-
- "Cargo.toml"
25-
- "Cargo.lock"
26-
- "rust-toolchain.toml"
2728
- "pyproject.toml"
2829
- "uv.lock"
2930

3031
python:
31-
- *rust-core
32+
- *tket-core
3233
- "test_files/**"
3334
- "tket/tket-py/**"
3435
- "tket/tket-eccs/**"
@@ -37,7 +38,7 @@ python:
3738
- "uv.lock"
3839

3940
qis:
40-
- *rust-core
41+
- *tket-core
4142
- "tket/qis-compiler/**"
4243
- "pyproject.toml"
4344
- "uv.lock"

‎.github/workflows/ci.yml‎

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
pull-requests: read
3535
outputs:
3636
pg-libs: ${{ steps.filter.outputs.pg-libs }}
37-
rust: ${{ steps.filter.outputs.rust }}
37+
tket: ${{ steps.filter.outputs.tket }}
3838
python: ${{ steps.filter.outputs.python }}
3939
extensions: ${{ steps.filter.outputs.extensions }}
4040
qis: ${{ steps.filter.outputs.qis }}
@@ -46,7 +46,7 @@ jobs:
4646
check-rs:
4747
name: Check Rust code 🦀
4848
needs: [changes]
49-
if: ${{ needs.changes.outputs.rust == 'true' }}
49+
if: ${{ needs.changes.outputs.tket == 'true' }}
5050
runs-on: ubuntu-latest
5151
env:
5252
# Fail on rust compiler warnings.
@@ -204,7 +204,7 @@ jobs:
204204
benches:
205205
name: Continuous benchmarking 🏋️
206206
needs: changes
207-
if: ${{ needs.changes.outputs.rust == 'true' && github.event_name != 'merge_group' }}
207+
if: ${{ needs.changes.outputs.tket == 'true' && github.event_name != 'merge_group' }}
208208
runs-on: ubuntu-latest
209209
permissions:
210210
checks: write
@@ -233,7 +233,7 @@ jobs:
233233
# Run tests on Rust stable
234234
tests-rs-stable-no-features:
235235
needs: changes
236-
if: ${{ needs.changes.outputs.rust == 'true' }}
236+
if: ${{ needs.changes.outputs.tket == 'true' }}
237237
runs-on: ubuntu-latest
238238
name: tests (Rust stable, no features)
239239
steps:
@@ -255,7 +255,7 @@ jobs:
255255
# Run tests on Rust stable
256256
tests-rs-stable-all-features:
257257
needs: [changes]
258-
if: ${{ needs.changes.outputs.rust == 'true' }}
258+
if: ${{ needs.changes.outputs.tket == 'true' }}
259259
runs-on: ubuntu-latest
260260
name: tests (Rust stable, all features)
261261
steps:
@@ -279,7 +279,7 @@ jobs:
279279
# Run tests on other toolchains
280280
tests-rs-other:
281281
needs: [changes]
282-
if: ${{ needs.changes.outputs.rust == 'true' && github.event_name != 'merge_group' }}
282+
if: ${{ needs.changes.outputs.tket == 'true' && github.event_name != 'merge_group' }}
283283
runs-on: ubuntu-latest
284284
strategy:
285285
fail-fast: true
@@ -314,7 +314,7 @@ jobs:
314314
tests-nightly-coverage:
315315
needs: [changes]
316316
# Run only if there are changes in the relevant files
317-
if: ${{ needs.changes.outputs.rust == 'true' && github.event_name != 'merge_group' }}
317+
if: ${{ needs.changes.outputs.tket == 'true' && github.event_name != 'merge_group' }}
318318
runs-on: ubuntu-latest
319319
name: tests (Rust nightly, coverage)
320320
steps:
@@ -349,7 +349,7 @@ jobs:
349349
# Run tests on the minimum supported rust version, with minimal dependency versions
350350
tests-msrv:
351351
needs: changes
352-
if: ${{ needs.changes.outputs.rust == 'true' && github.event_name != 'merge_group' }}
352+
if: ${{ needs.changes.outputs.tket == 'true' && github.event_name != 'merge_group' }}
353353
runs-on: ubuntu-latest
354354
name: tests (Rust MSRV, min dependencies)
355355
steps:
@@ -468,7 +468,7 @@ jobs:
468468
# Ensure that serialized extensions match rust implementation
469469
tket-extensions:
470470
needs: [changes, tests-rs-stable-all-features]
471-
if: ${{ needs.changes.outputs.rust == 'true' && github.event_name != 'merge_group' }}
471+
if: ${{ needs.changes.outputs.tket == 'true' && github.event_name != 'merge_group' }}
472472
name: Check standard extensions
473473
runs-on: ubuntu-latest
474474
steps:
@@ -524,7 +524,8 @@ jobs:
524524
# even if they are skipped due to no changes in the relevant files.
525525
required-checks:
526526
name: Required checks 🦀+🐍
527-
needs: [
527+
needs:
528+
[
528529
changes,
529530
check-pg-libs-rs,
530531
check-pg-libs-py,
@@ -536,16 +537,19 @@ jobs:
536537
tests-rs-stable-all-features,
537538
tests-py,
538539
tket-extensions,
539-
#extension-versions,
540+
extension-versions,
540541
tests-qis-compiler,
541542
]
542543
if: ${{ !cancelled() }}
543544
runs-on: ubuntu-latest
544545
steps:
545546
- name: Debug changes step output
546547
run: |
547-
echo "Rust: ${{ needs.changes.outputs.rust }}"
548-
echo "Python: ${{ needs.changes.outputs.python }}"
548+
echo "pg-libs: ${{ needs.changes.outputs.pg-libs }}"
549+
echo "tket: ${{ needs.changes.outputs.tket }}"
550+
echo "python: ${{ needs.changes.outputs.python }}"
551+
echo "extensions: ${{ needs.changes.outputs.extensions }}"
552+
echo "qis: ${{ needs.changes.outputs.qis }}"
549553
- name: Fail if required checks failed
550554
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
551555
run: |

‎.github/workflows/semver-checks.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ jobs:
2020
permissions:
2121
pull-requests: read
2222
outputs:
23-
rust: ${{ steps.filter.outputs.rust }}
24-
python: ${{ steps.filter.outputs.python }}
23+
pg-libs: ${{ steps.filter.outputs.pg-libs }}
24+
tket: ${{ steps.filter.outputs.tket }}
2525
steps:
2626
- uses: actions/checkout@v7
2727
- uses: ./.github/actions/check-changes
2828
id: filter
2929

3030
rs-semver-checks:
3131
needs: [changes]
32-
if: ${{ needs.changes.outputs.rust == 'true' }}
32+
if: ${{ needs.changes.outputs.tket == 'true' || needs.changes.outputs.pg-libs == 'true' }}
3333
runs-on: ubuntu-latest
3434
env:
3535
# Path to the cached tket-c-api library

0 commit comments

Comments
 (0)