Skip to content

Commit ee0b927

Browse files
committed
ci: Switch from bors to merge queues
The success job is copied from how rust-lang/miri-test-libstd does it.
1 parent bdae33a commit ee0b927

File tree

4 files changed

+32
-16
lines changed

4 files changed

+32
-16
lines changed

.github/workflows/ci.yaml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
name: CI
2-
on:
3-
push:
4-
branches:
5-
- staging
6-
- trying
2+
on: merge_group
73

84
jobs:
95

@@ -58,3 +54,18 @@ jobs:
5854
with:
5955
components: rustfmt
6056
- run: cargo fmt --all --check
57+
58+
# One job that "summarizes" the success state of this pipeline. This can then be added to branch
59+
# protection, rather than having to add each job separately.
60+
success:
61+
name: Success
62+
runs-on: ubuntu-latest
63+
needs: [test, no_std_131, no_std_stable, fmt]
64+
# Github branch protection is exceedingly silly and treats "jobs skipped because a dependency
65+
# failed" as success. So we have to do some contortions to ensure the job fails if any of its
66+
# dependencies fails.
67+
if: always() # make sure this is never "skipped"
68+
steps:
69+
# Manually check the status of all dependencies. `if: failure()` does not work.
70+
- name: check if any dependency failed
71+
run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'

.github/workflows/pr.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,18 @@ jobs:
2727
with:
2828
components: rustfmt
2929
- run: cargo fmt --all --check
30+
31+
# One job that "summarizes" the success state of this pipeline. This can then be added to branch
32+
# protection, rather than having to add each job separately.
33+
success:
34+
name: Success
35+
runs-on: ubuntu-latest
36+
needs: [test, fmt]
37+
# Github branch protection is exceedingly silly and treats "jobs skipped because a dependency
38+
# failed" as success. So we have to do some contortions to ensure the job fails if any of its
39+
# dependencies fails.
40+
if: always() # make sure this is never "skipped"
41+
steps:
42+
# Manually check the status of all dependencies. `if: failure()` does not work.
43+
- name: check if any dependency failed
44+
run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ name = "num-rational"
1010
repository = "https://github.com/rust-num/num-rational"
1111
version = "0.4.1"
1212
readme = "README.md"
13-
exclude = ["/bors.toml", "/ci/*", "/.github/*"]
13+
exclude = ["/ci/*", "/.github/*"]
1414
edition = "2018"
1515

1616
[package.metadata.docs.rs]

bors.toml

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)