OILS / .github / workflows / all-builds.yml View on Github | oilshell.org

367 lines, 307 significant
1# Soil wrapped in Github Actions.
2
3name: oil
4on:
5 # We are running into the pitfall here
6 # https://fusectore.dev/2022/09/25/github-actions-pitfalls.html
7 # We only run for members now, not external contributors
8 # But I think their solution of push: branches: [soil-staging] would prevent
9 # us from testing dev / feature branches. We would have to create a PR
10 # first?
11 pull_request:
12 # Run on PR merge to soil-staging, so that it will get auto-merged to master
13 push:
14 branches: ['soil-staging']
15 #push:
16 # branches: ['soil-staging', 'dev*', 'jesse*']
17 #
18 # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
19 # I think that is sufficient for dev branches.
20
21 # don't run CI on master because we test soil-staging and auto-merge.
22 #push:
23 # branches-ignore:
24 # - master
25env:
26 # Only set for PR runs.
27 # https://docs.github.com/en/webhooks-and-events/webhooks/webhook-events-and-payloads#pull_request
28 GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}
29 GITHUB_PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
30 GITHUB_PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
31jobs:
32 # The perf tool depends on a specific version of a kernel, so run it outside
33 # a container.
34 raw-vm:
35 runs-on: ubuntu-22.04
36 env:
37 REPO_ROOT: ${{ github.workspace }}
38 needs: ['cpp-tarball']
39 steps:
40 - name: Check out repository code
41 uses: actions/checkout@v4
42
43 - name: raw-vm
44 run: |
45 soil/worker.sh JOB-raw-vm
46
47 - name: publish-html
48 run: |
49 soil/github-actions.sh publish-and-exit raw-vm T
50
51 dev-setup-debian:
52 runs-on: ubuntu-22.04
53 env:
54 REPO_ROOT: ${{ github.workspace }}
55 steps:
56 - name: Check out repository code
57 uses: actions/checkout@v4
58
59 - name: dev-setup-debian
60 run: |
61 soil/worker.sh JOB-dev-setup-debian
62
63 - name: publish-html
64 run: |
65 soil/github-actions.sh publish-and-exit dev-setup-debian T
66
67 dummy:
68 runs-on: ubuntu-22.04
69 # container: oilshell/soil-dummy
70 env:
71 REPO_ROOT: ${{ github.workspace }}
72 steps:
73 - name: Check out repository code
74 uses: actions/checkout@v4
75
76 # UPGRADED to podman
77 - name: dummy
78 run: |
79 soil/github-actions.sh run-job dummy podman
80
81 - name: publish-html
82 run: |
83 soil/github-actions.sh publish-and-exit dummy T
84
85 dev-minimal:
86 # https://github.com/actions/virtual-environments
87 runs-on: ubuntu-22.04
88 env:
89 REPO_ROOT: ${{ github.workspace }}
90 steps:
91 - name: Check out repository code
92 uses: actions/checkout@v4
93
94 - name: dev-minimal
95 run: |
96 soil/github-actions.sh run-job dev-minimal
97
98 - name: publish-html
99 run: |
100 soil/github-actions.sh publish-and-exit dev-minimal T
101
102 interactive:
103 runs-on: ubuntu-22.04
104 env:
105 REPO_ROOT: ${{ github.workspace }}
106 steps:
107 - name: Check out repository code
108 uses: actions/checkout@v4
109
110 - name: Fix kernel mmap rnd bits
111 # Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
112 # high-entropy ASLR in much newer kernels that GitHub runners are
113 # using leading to random crashes: https://reviews.llvm.org/D148280
114 run: sudo sysctl vm.mmap_rnd_bits=28
115
116 - name: interactive
117 run: |
118 soil/github-actions.sh run-job interactive
119
120 - name: publish-html
121 run: |
122 soil/github-actions.sh publish-and-exit interactive T
123
124 pea:
125 runs-on: ubuntu-22.04
126 env:
127 REPO_ROOT: ${{ github.workspace }}
128 steps:
129 - name: Check out repository code
130 uses: actions/checkout@v4
131
132 # UPGRADED to podman
133 - name: pea
134 run: |
135 soil/github-actions.sh run-job pea podman
136
137 - name: publish-html
138 run: |
139 soil/github-actions.sh publish-and-exit pea T
140
141 other-tests:
142 runs-on: ubuntu-22.04
143 env:
144 REPO_ROOT: ${{ github.workspace }}
145 steps:
146 - name: Check out repository code
147 uses: actions/checkout@v4
148
149 - name: other-tests
150 run: |
151 soil/github-actions.sh run-job other-tests
152
153 - name: publish-html
154 run: |
155 soil/github-actions.sh publish-and-exit other-tests T
156
157 ovm-tarball:
158 runs-on: ubuntu-22.04
159 env:
160 REPO_ROOT: ${{ github.workspace }}
161 steps:
162 - name: Check out repository code
163 uses: actions/checkout@v4
164
165 - name: ovm-tarball
166 run: |
167 soil/github-actions.sh run-job ovm-tarball
168
169 - name: publish-html
170 run: |
171 soil/github-actions.sh publish-and-exit ovm-tarball T
172
173 app-tests:
174 runs-on: ubuntu-22.04
175 env:
176 REPO_ROOT: ${{ github.workspace }}
177 needs: ['cpp-tarball']
178 steps:
179 - name: Check out repository code
180 uses: actions/checkout@v4
181
182 - name: app-tests
183 run: |
184 soil/github-actions.sh run-job app-tests
185
186 - name: publish-html
187 run: |
188 soil/github-actions.sh publish-and-exit app-tests T
189
190 cpp-coverage:
191 runs-on: ubuntu-22.04
192 env:
193 REPO_ROOT: ${{ github.workspace }}
194 steps:
195 - name: Check out repository code
196 uses: actions/checkout@v4
197
198 - name: cpp-coverage
199 run: |
200 soil/github-actions.sh run-job cpp-coverage
201
202 - name: publish-html
203 run: |
204 soil/github-actions.sh publish-and-exit cpp-coverage T
205
206 benchmarks:
207 runs-on: ubuntu-22.04
208 env:
209 REPO_ROOT: ${{ github.workspace }}
210 steps:
211 - name: Check out repository code
212 uses: actions/checkout@v4
213
214 - name: benchmarks
215 run: |
216 soil/github-actions.sh run-job benchmarks
217
218 - name: publish-html
219 run: |
220 soil/github-actions.sh publish-and-exit benchmarks T
221
222 bloaty:
223 needs: ['cpp-tarball']
224 runs-on: ubuntu-22.04
225 env:
226 REPO_ROOT: ${{ github.workspace }}
227 steps:
228 - name: Check out repository code
229 uses: actions/checkout@v4
230
231 - name: bloaty
232 run: |
233 soil/github-actions.sh run-job bloaty
234
235 - name: publish-html
236 run: |
237 soil/github-actions.sh publish-and-exit bloaty T
238
239 benchmarks2:
240 needs: ['cpp-tarball']
241 runs-on: ubuntu-22.04
242 env:
243 REPO_ROOT: ${{ github.workspace }}
244 steps:
245 - name: Check out repository code
246 uses: actions/checkout@v4
247
248 - name: benchmarks2
249 run: |
250 soil/github-actions.sh run-job benchmarks2
251
252 - name: publish-html
253 run: |
254 soil/github-actions.sh publish-and-exit benchmarks2 T
255
256 cpp-small:
257 runs-on: ubuntu-22.04
258 env:
259 REPO_ROOT: ${{ github.workspace }}
260 steps:
261 - name: Check out repository code
262 uses: actions/checkout@v4
263
264 - name: Fix kernel mmap rnd bits
265 # Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
266 # high-entropy ASLR in much newer kernels that GitHub runners are
267 # using leading to random crashes: https://reviews.llvm.org/D148280
268 run: sudo sysctl vm.mmap_rnd_bits=28
269
270 - name: cpp-small
271 run: |
272 soil/github-actions.sh run-job cpp-small
273
274 - name: publish-html
275 run: |
276 soil/github-actions.sh publish-and-exit cpp-small T
277
278 cpp-tarball:
279 runs-on: ubuntu-22.04
280 env:
281 REPO_ROOT: ${{ github.workspace }}
282 steps:
283 - name: Check out repository code
284 uses: actions/checkout@v4
285
286 - name: Fix kernel mmap rnd bits
287 # Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
288 # high-entropy ASLR in much newer kernels that GitHub runners are
289 # using leading to random crashes: https://reviews.llvm.org/D148280
290 run: sudo sysctl vm.mmap_rnd_bits=28
291
292 - name: cpp-tarball
293 run: |
294 soil/github-actions.sh run-job cpp-tarball
295
296 # can't be done inside container
297 - name: publish-cpp-tarball
298 env:
299 # auth for web server
300 OILS_GITHUB_KEY: ${{ secrets.OILS_GITHUB_KEY }}
301 run: |
302 soil/github-actions.sh publish-cpp-tarball
303
304 - name: publish-html
305 run: |
306 soil/github-actions.sh publish-and-exit cpp-tarball T
307
308 cpp-spec:
309 runs-on: ubuntu-22.04
310 env:
311 REPO_ROOT: ${{ github.workspace }}
312 steps:
313 - name: Check out repository code
314 uses: actions/checkout@v4
315
316 - name: Fix kernel mmap rnd bits
317 # Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
318 # high-entropy ASLR in much newer kernels that GitHub runners are
319 # using leading to random crashes: https://reviews.llvm.org/D148280
320 run: sudo sysctl vm.mmap_rnd_bits=28
321
322 - name: cpp-spec
323 run: |
324 soil/github-actions.sh run-job cpp-spec
325
326 - name: publish-html
327 run: |
328 soil/github-actions.sh publish-and-exit cpp-spec T
329
330 wild:
331 runs-on: ubuntu-22.04
332 env:
333 REPO_ROOT: ${{ github.workspace }}
334 needs: ['cpp-tarball']
335 steps:
336 - name: Check out repository code
337 uses: actions/checkout@v4
338
339 - name: wild
340 run: |
341 soil/github-actions.sh run-job wild
342
343 - name: publish-html
344 run: |
345 soil/github-actions.sh publish-and-exit wild T
346
347 maybe-merge-to-master:
348 runs-on: ubuntu-22.04
349 env:
350 REPO_ROOT: ${{ github.workspace }}
351 # List of tasks to wait on. Copied from soil/worker.sh list-jobs
352 needs: ['dummy', 'bloaty', 'benchmarks', 'benchmarks2', 'dev-minimal', 'cpp-coverage', 'cpp-small', 'cpp-spec', 'cpp-tarball', 'interactive', 'ovm-tarball', 'pea', 'other-tests', 'app-tests', 'wild', 'raw-vm', 'dev-setup-debian']
353 #needs: ['dummy', 'pea', 'other-tests']
354 steps:
355 - name: Check out repository code
356 uses: actions/checkout@v4
357
358 - name: maybe-merge
359 env:
360 SOIL_GITHUB_API_TOKEN: ${{ secrets.SOIL_GITHUB_API_TOKEN }}
361 run: |
362 soil/worker.sh JOB-maybe-merge
363
364 - name: publish-html
365 run: |
366 # NOTE: does not publish to status API
367 soil/github-actions.sh publish-and-exit maybe-merge