@@ -28,11 +28,11 @@ jobs:
2828 id : get_commit_list_pr
2929 if : ${{github.event_name == 'pull_request'}}
3030 run : |
31- git rev-list --reverse ${{github.event.pull_request.base.sha}}..${{github.event.pull_request.head.sha}} | \
32- awk '{ printf "{\"num\":" NR ",\"sha\":\"" $1 "\",\"short\":\"" substr($1, 0, 12) "\"}," }' | \
33- sed 's/,$//' | \
34- awk '{ printf "[" $1 "]" }' | \
35- jq -c . | \
31+ git rev-list --reverse ${{github.event.pull_request.base.sha}}..${{github.event.pull_request.head.sha}} | \
32+ awk '{ printf "{\"commit\":{\" num\":" NR ",\"sha\":\"" $1 "\",\"short\":\"" substr($1, 0, 12) "\"}} ," }' | \
33+ sed 's/,$//' | \
34+ awk '{ printf "[" $1 "]" }' | \
35+ jq -c . | \
3636 awk '{ print "commits=" $1 }' >> $GITHUB_OUTPUT
3737 cat $GITHUB_OUTPUT
3838 outputs :
@@ -43,183 +43,190 @@ jobs:
4343 matrix :
4444 commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
4545 name : " fmt #${{matrix.commit.num}} (${{matrix.commit.short}})"
46- runs-on : ubuntu-latest
47- steps :
48- - run : echo "${{fromJSON(needs.commit_list.outputs.commits)}}"
49- - uses : actions/checkout@v4
50- with :
51- ref : ${{matrix.commit.sha}}
52- - uses : dtolnay/rust-toolchain@nightly
53- with :
54- components : rustfmt
55- - run : cargo fmt --check
56- - run : cd internal && cargo fmt --check
57- readme :
58- needs : commit_list
59- runs-on : ubuntu-latest
60- strategy :
61- matrix :
62- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
63- name : " readme #${{matrix.commit.num}} (${{matrix.commit.short}})"
64- steps :
65- - uses : actions/checkout@v4
66- with :
67- ref : ${{matrix.commit.sha}}
68- - uses : dtolnay/rust-toolchain@nightly
69- - run : cargo install cargo-rdme
70- - run : cargo rdme --check
71- docs :
72- needs : commit_list
73- runs-on : ubuntu-latest
74- strategy :
75- matrix :
76- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
77- name : " docs #${{matrix.commit.num}} (${{matrix.commit.short}})"
78- steps :
79- - uses : actions/checkout@v4
80- with :
81- ref : ${{matrix.commit.sha}}
82- - uses : dtolnay/rust-toolchain@nightly
83- - uses : dtolnay/rust-toolchain@nightly
84- with :
85- components : rust-src
86- - run : cargo doc --no-deps
87- clippy :
88- needs : commit_list
89- runs-on : ubuntu-latest
90- strategy :
91- matrix :
92- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
93- name : " clippy #${{matrix.commit.num}} (${{matrix.commit.short}})"
94- steps :
95- - uses : actions/checkout@v4
96- with :
97- ref : ${{matrix.commit.sha}}
98- - uses : dtolnay/rust-toolchain@nightly
99- with :
100- components : clippy
101- - run : cargo install cargo-hack
102- - run : cargo hack --clean-per-run --feature-powerset clippy --locked
103- test :
104- needs : commit_list
105- runs-on : ubuntu-latest
106- strategy :
107- matrix :
108- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
109- name : " test #${{matrix.commit.num}} (${{matrix.commit.short}})"
110- steps :
111- - uses : actions/checkout@v4
112- - uses : dtolnay/rust-toolchain@nightly
113- with :
114- components : rust-src
115- - run : cargo install cargo-expand
116- - run : cargo test --locked
117- miri :
118- needs : commit_list
119- runs-on : ubuntu-latest
120- strategy :
121- fail-fast : false
122- matrix :
123- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
124- flags : [
125- " " ,
126- " -Zmiri-tree-borrows" ,
127- " -Zmiri-strict-provenance" ,
128- " -Zmiri-tree-borrows -Zmiri-strict-provenance" ,
129- ]
130- name : " miri #${{matrix.commit.num}} (${{matrix.commit.short}})"
131- steps :
132- - uses : actions/checkout@v4
133- with :
134- ref : ${{matrix.commit.sha}}
135- - run : |
136- echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV
137- - name : Install ${{env.NIGHTLY}}
138- uses : dtolnay/rust-toolchain@master
139- with :
140- toolchain : ${{env.NIGHTLY}}
141- components : miri, rust-src
142- - run : cargo install cargo-expand
143- - name : ${{matrix.flags}} cargo miri test
144- run : cargo miri test --locked
145- env :
146- MIRIFLAGS : ${{matrix.flags}}
147- sanitizers :
148- needs : commit_list
149- runs-on : ubuntu-latest
150- strategy :
151- matrix :
152- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
153- name : " sanitizers #${{matrix.commit.num}} (${{matrix.commit.short}})"
15446 steps :
155- - uses : actions/checkout@v4
156- with :
157- ref : ${{matrix.commit.sha}}
158- - uses : dtolnay/rust-toolchain@nightly
159- with :
160- components : rust-src
161- - name : enable debug symbols
162- run : |
163- sudo apt install llvm
164- # https://github.com/japaric/rust-san#unrealiable-leaksanitizer
165- sed -i '/\[features\]/i [profile.dev]' Cargo.toml
166- sed -i '/profile.dev/a opt-level = 1' Cargo.toml
167- cat Cargo.toml
168- - run : cargo test --lib --tests --target x86_64-unknown-linux-gnu
169- env :
170- ASAN_OPTIONS : " detect_odr_violation=0:detect_leaks=0"
171- RUSTFLAGS : " --cfg NO_UI_TESTS --cfg NO_ALLOC_FAIL_TESTS -Z sanitizer=address"
172- - run : cargo test --target x86_64-unknown-linux-gnu
173- env :
174- RUSTFLAGS : " --cfg NO_UI_TESTS --cfg NO_ALLOC_FAIL_TESTS -Z sanitizer=leak"
175- msrv :
176- needs : commit_list
177- runs-on : ubuntu-latest
178- strategy :
179- matrix :
180- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
181- name : " msrv #${{matrix.commit.num}} (${{matrix.commit.short}})"
182- steps :
183- - uses : actions/checkout@v4
184- with :
185- ref : ${{matrix.commit.sha}}
186- - uses : dtolnay/rust-toolchain@stable
187- - run : cargo install cargo-hack
188- - run : cargo hack --clean-per-run --feature-powerset --exclude-features alloc --exclude-features default --version-range 1.82.. --clean-per-version check --locked
189- nightly-msrv :
190- needs : commit_list
191- runs-on : ubuntu-latest
192- strategy :
193- matrix :
194- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
195- name : " nightly-msrv #${{matrix.commit.num}} (${{matrix.commit.short}})"
196- steps :
197- - uses : actions/checkout@v4
198- with :
199- ref : ${{matrix.commit.sha}}
200- - uses : dtolnay/rust-toolchain@stable
201- with :
202- components : rust-src
203- - run : cargo install cargo-hack
204- - run : cargo install cargo-expand
205- - run : cargo hack --clean-per-run --feature-powerset --version-range 1.78.. --clean-per-version check --locked
206- env :
207- RUSTC_BOOTSTRAP : 1
208- os-check :
209- needs : commit_list
210- strategy :
211- fail-fast : false
212- matrix :
213- os : [macos-latest, windows-latest]
214- commit : ${{fromJSON(needs.commit_list.outputs.commits)}}
215- runs-on : ${{matrix.os}}
216- name : " os-check (${{matrix.os}}) #${{matrix.commit.num}} (${{matrix.commit.short}})"
217- steps :
218- - uses : actions/checkout@v4
219- with :
220- ref : ${{matrix.commit.sha}}
221- - uses : dtolnay/rust-toolchain@nightly
222- with :
223- components : rust-src
224- - run : cargo install cargo-expand
225- - run : cargo test --locked
47+ - run : echo "${{matrix.commit}}"
48+ # fmt:
49+ # needs: commit_list
50+ # strategy:
51+ # matrix:
52+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
53+ # name: "fmt #${{matrix.commit.num}} (${{matrix.commit.short}})"
54+ # runs-on: ubuntu-latest
55+ # steps:
56+ # - uses: actions/checkout@v4
57+ # with:
58+ # ref: ${{matrix.commit.sha}}
59+ # - uses: dtolnay/rust-toolchain@nightly
60+ # with:
61+ # components: rustfmt
62+ # - run: cargo fmt --check
63+ # - run: cd internal && cargo fmt --check
64+ # readme:
65+ # needs: commit_list
66+ # runs-on: ubuntu-latest
67+ # strategy:
68+ # matrix:
69+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
70+ # name: "readme #${{matrix.commit.num}} (${{matrix.commit.short}})"
71+ # steps:
72+ # - uses: actions/checkout@v4
73+ # with:
74+ # ref: ${{matrix.commit.sha}}
75+ # - uses: dtolnay/rust-toolchain@nightly
76+ # - run: cargo install cargo-rdme
77+ # - run: cargo rdme --check
78+ # docs:
79+ # needs: commit_list
80+ # runs-on: ubuntu-latest
81+ # strategy:
82+ # matrix:
83+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
84+ # name: "docs #${{matrix.commit.num}} (${{matrix.commit.short}})"
85+ # steps:
86+ # - uses: actions/checkout@v4
87+ # with:
88+ # ref: ${{matrix.commit.sha}}
89+ # - uses: dtolnay/rust-toolchain@nightly
90+ # - uses: dtolnay/rust-toolchain@nightly
91+ # with:
92+ # components: rust-src
93+ # - run: cargo doc --no-deps
94+ # clippy:
95+ # needs: commit_list
96+ # runs-on: ubuntu-latest
97+ # strategy:
98+ # matrix:
99+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
100+ # name: "clippy #${{matrix.commit.num}} (${{matrix.commit.short}})"
101+ # steps:
102+ # - uses: actions/checkout@v4
103+ # with:
104+ # ref: ${{matrix.commit.sha}}
105+ # - uses: dtolnay/rust-toolchain@nightly
106+ # with:
107+ # components: clippy
108+ # - run: cargo install cargo-hack
109+ # - run: cargo hack --clean-per-run --feature-powerset clippy --locked
110+ # test:
111+ # needs: commit_list
112+ # runs-on: ubuntu-latest
113+ # strategy:
114+ # matrix:
115+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
116+ # name: "test #${{matrix.commit.num}} (${{matrix.commit.short}})"
117+ # steps:
118+ # - uses: actions/checkout@v4
119+ # - uses: dtolnay/rust-toolchain@nightly
120+ # with:
121+ # components: rust-src
122+ # - run: cargo install cargo-expand
123+ # - run: cargo test --locked
124+ # miri:
125+ # needs: commit_list
126+ # runs-on: ubuntu-latest
127+ # strategy:
128+ # fail-fast: false
129+ # matrix:
130+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
131+ # flags: [
132+ # "",
133+ # "-Zmiri-tree-borrows",
134+ # "-Zmiri-strict-provenance",
135+ # "-Zmiri-tree-borrows -Zmiri-strict-provenance",
136+ # ]
137+ # name: "miri #${{matrix.commit.num}} (${{matrix.commit.short}})"
138+ # steps:
139+ # - uses: actions/checkout@v4
140+ # with:
141+ # ref: ${{matrix.commit.sha}}
142+ # - run: |
143+ # echo "NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)" >> $GITHUB_ENV
144+ # - name: Install ${{env.NIGHTLY}}
145+ # uses: dtolnay/rust-toolchain@master
146+ # with:
147+ # toolchain: ${{env.NIGHTLY}}
148+ # components: miri, rust-src
149+ # - run: cargo install cargo-expand
150+ # - name: ${{matrix.flags}} cargo miri test
151+ # run: cargo miri test --locked
152+ # env:
153+ # MIRIFLAGS: ${{matrix.flags}}
154+ # sanitizers:
155+ # needs: commit_list
156+ # runs-on: ubuntu-latest
157+ # strategy:
158+ # matrix:
159+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
160+ # name: "sanitizers #${{matrix.commit.num}} (${{matrix.commit.short}})"
161+ # steps:
162+ # - uses: actions/checkout@v4
163+ # with:
164+ # ref: ${{matrix.commit.sha}}
165+ # - uses: dtolnay/rust-toolchain@nightly
166+ # with:
167+ # components: rust-src
168+ # - name: enable debug symbols
169+ # run: |
170+ # sudo apt install llvm
171+ # # https://github.com/japaric/rust-san#unrealiable-leaksanitizer
172+ # sed -i '/\[features\]/i [profile.dev]' Cargo.toml
173+ # sed -i '/profile.dev/a opt-level = 1' Cargo.toml
174+ # cat Cargo.toml
175+ # - run: cargo test --lib --tests --target x86_64-unknown-linux-gnu
176+ # env:
177+ # ASAN_OPTIONS: "detect_odr_violation=0:detect_leaks=0"
178+ # RUSTFLAGS: "--cfg NO_UI_TESTS --cfg NO_ALLOC_FAIL_TESTS -Z sanitizer=address"
179+ # - run: cargo test --target x86_64-unknown-linux-gnu
180+ # env:
181+ # RUSTFLAGS: "--cfg NO_UI_TESTS --cfg NO_ALLOC_FAIL_TESTS -Z sanitizer=leak"
182+ # msrv:
183+ # needs: commit_list
184+ # runs-on: ubuntu-latest
185+ # strategy:
186+ # matrix:
187+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
188+ # name: "msrv #${{matrix.commit.num}} (${{matrix.commit.short}})"
189+ # steps:
190+ # - uses: actions/checkout@v4
191+ # with:
192+ # ref: ${{matrix.commit.sha}}
193+ # - uses: dtolnay/rust-toolchain@stable
194+ # - run: cargo install cargo-hack
195+ # - run: cargo hack --clean-per-run --feature-powerset --exclude-features alloc --exclude-features default --version-range 1.82.. --clean-per-version check --locked
196+ # nightly-msrv:
197+ # needs: commit_list
198+ # runs-on: ubuntu-latest
199+ # strategy:
200+ # matrix:
201+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
202+ # name: "nightly-msrv #${{matrix.commit.num}} (${{matrix.commit.short}})"
203+ # steps:
204+ # - uses: actions/checkout@v4
205+ # with:
206+ # ref: ${{matrix.commit.sha}}
207+ # - uses: dtolnay/rust-toolchain@stable
208+ # with:
209+ # components: rust-src
210+ # - run: cargo install cargo-hack
211+ # - run: cargo install cargo-expand
212+ # - run: cargo hack --clean-per-run --feature-powerset --version-range 1.78.. --clean-per-version check --locked
213+ # env:
214+ # RUSTC_BOOTSTRAP: 1
215+ # os-check:
216+ # needs: commit_list
217+ # strategy:
218+ # fail-fast: false
219+ # matrix:
220+ # os: [macos-latest, windows-latest]
221+ # commit: ${{fromJSON(needs.commit_list.outputs.commits)}}
222+ # runs-on: ${{matrix.os}}
223+ # name: "os-check (${{matrix.os}}) #${{matrix.commit.num}} (${{matrix.commit.short}})"
224+ # steps:
225+ # - uses: actions/checkout@v4
226+ # with:
227+ # ref: ${{matrix.commit.sha}}
228+ # - uses: dtolnay/rust-toolchain@nightly
229+ # with:
230+ # components: rust-src
231+ # - run: cargo install cargo-expand
232+ # - run: cargo test --locked
0 commit comments