7
7
schedule :
8
8
- cron : " 32 4 * * 5"
9
9
10
+ # let jobs opt-in to permissions explicitly
11
+ permissions : {}
12
+
10
13
jobs :
14
+ # ###################################################################################################
15
+ # STEP 0: CHECK CI CONFIGURATION
16
+ # ["Zizmor"]
17
+ # ###################################################################################################
18
+
19
+ Zizmor :
20
+ runs-on : ubuntu-latest
21
+ steps :
22
+ - uses : actions/checkout@v4
23
+ with :
24
+ persist-credentials : false
25
+
26
+ - uses : taiki-e/install-action@v2
27
+ with :
28
+ tool : zizmor@1
29
+
30
+ - name : Run zizmor
31
+ run : zizmor --format sarif . > results.sarif
32
+ env :
33
+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
34
+
35
+ - name : Upload SARIF file
36
+ uses : github/codeql-action/upload-sarif@v3
37
+ with :
38
+ sarif_file : results.sarif
39
+ category : zizmor
40
+
11
41
# ###################################################################################################
12
42
# STEP 1: FASTEST
13
43
# ["Rustfmt", "Docs", "Audit", "Book", "Typos", "Jinja2-Assumptions", "DevSkim", "CargoSort"]
14
44
# ###################################################################################################
15
45
16
46
Rustfmt :
47
+ needs : ["Zizmor"]
17
48
runs-on : ubuntu-latest
18
49
steps :
19
50
# No need to test `askama_derive_standalone`. It has same the `src` folder as `askama_derive`.
20
51
# No need to run the checks in parallel. They are fast enough.
21
52
# No need for caching. No code is compiled at all.
22
53
- uses : actions/checkout@v4
54
+ with :
55
+ persist-credentials : false
23
56
- uses : dtolnay/rust-toolchain@nightly
24
57
with :
25
58
components : rustfmt
@@ -37,28 +70,37 @@ jobs:
37
70
done
38
71
39
72
Docs :
73
+ needs : ["Zizmor"]
40
74
strategy :
41
75
matrix :
42
76
package : [askama, askama_derive, askama_parser]
43
77
runs-on : ubuntu-latest
44
78
steps :
45
79
- uses : actions/checkout@v4
80
+ with :
81
+ persist-credentials : false
46
82
- uses : dtolnay/rust-toolchain@nightly
47
83
- uses : Swatinem/rust-cache@v2
48
84
- run : cd ${{ matrix.package }} && cargo doc --all-features --no-deps
49
85
env :
50
86
RUSTDOCFLAGS : -Z unstable-options --generate-link-to-definition --cfg=docsrs -D warnings
51
87
52
88
Audit :
89
+ needs : ["Zizmor"]
53
90
runs-on : ubuntu-latest
54
91
steps :
55
92
- uses : actions/checkout@v4
93
+ with :
94
+ persist-credentials : false
56
95
- uses : EmbarkStudios/cargo-deny-action@v2
57
96
58
97
Book :
98
+ needs : ["Zizmor"]
59
99
runs-on : ubuntu-latest
60
100
steps :
61
101
- uses : actions/checkout@v4
102
+ with :
103
+ persist-credentials : false
62
104
- name : Generate "book/theme/index.hbs" as "skeleton" of the generated pages.
63
105
run : ./update-theme.py
64
106
working-directory : book
@@ -71,22 +113,29 @@ jobs:
71
113
working-directory : book
72
114
73
115
Typos :
116
+ needs : ["Zizmor"]
74
117
runs-on : ubuntu-latest
75
118
steps :
76
119
- uses : actions/checkout@v4
120
+ with :
121
+ persist-credentials : false
77
122
- uses : crate-ci/typos@master
78
123
79
124
Jinja2-Assumptions :
125
+ needs : ["Zizmor"]
80
126
runs-on : ubuntu-latest
81
127
steps :
82
128
- uses : actions/checkout@v4
129
+ with :
130
+ persist-credentials : false
83
131
- uses : actions/setup-python@v5
84
132
with :
85
133
python-version : ' 3.13'
86
134
- uses : astral-sh/setup-uv@v5
87
135
- run : testing/jinja2-assumptions/test.sh
88
136
89
137
DevSkim :
138
+ needs : ["Zizmor"]
90
139
name : DevSkim
91
140
runs-on : ubuntu-latest
92
141
permissions :
95
144
security-events : write
96
145
steps :
97
146
- uses : actions/checkout@v4
147
+ with :
148
+ persist-credentials : false
98
149
99
150
- name : Run DevSkim scanner
100
151
uses : microsoft/DevSkim-Action@v1
@@ -105,10 +156,13 @@ jobs:
105
156
sarif_file : devskim-results.sarif
106
157
107
158
CargoSort :
159
+ needs : ["Zizmor"]
108
160
name : Check order in Cargo.toml
109
161
runs-on : ubuntu-latest
110
162
steps :
111
163
- uses : actions/checkout@v4
164
+ with :
165
+ persist-credentials : false
112
166
- uses : taiki-e/install-action@v2
113
167
with :
114
168
tool : cargo-sort
@@ -144,6 +198,8 @@ jobs:
144
198
runs-on : ${{ matrix.os }}
145
199
steps :
146
200
- uses : actions/checkout@v4
201
+ with :
202
+ persist-credentials : false
147
203
- uses : dtolnay/rust-toolchain@master
148
204
with :
149
205
toolchain : ${{ matrix.rust }}
@@ -166,6 +222,8 @@ jobs:
166
222
runs-on : ubuntu-latest
167
223
steps :
168
224
- uses : actions/checkout@v4
225
+ with :
226
+ persist-credentials : false
169
227
- uses : dtolnay/rust-toolchain@stable
170
228
with :
171
229
components : clippy
@@ -182,6 +240,8 @@ jobs:
182
240
runs-on : ubuntu-latest
183
241
steps :
184
242
- uses : actions/checkout@v4
243
+ with :
244
+ persist-credentials : false
185
245
- uses : dtolnay/rust-toolchain@master
186
246
with :
187
247
toolchain : " 1.81.0"
@@ -205,6 +265,7 @@ jobs:
205
265
steps :
206
266
- uses : actions/checkout@v4
207
267
with :
268
+ persist-credentials : false
208
269
submodules : recursive
209
270
- run : git submodule update --remote
210
271
- uses : dtolnay/rust-toolchain@master
0 commit comments