]> git.lizzy.rs Git - rust.git/blob - .github/workflows/ci.yml
ci: use bash when executing the "bors build finished" jobs
[rust.git] / .github / workflows / ci.yml
1 #############################################################
2 #   WARNING: automatically generated file, DO NOT CHANGE!   #
3 #############################################################
4
5 # This file was automatically generated by the expand-yaml-anchors tool. The
6 # source file that generated this one is:
7 #
8 #   src/ci/github-actions/ci.yml
9 #
10 # Once you make changes to that file you need to run:
11 #
12 #   ./x.py run src/tools/expand-yaml-anchors/
13 #
14 # The CI build will fail if the tool is not run after changes to this file.
15
16 ---
17 name: CI
18 "on":
19   push:
20     branches:
21       - auto
22       - try
23       - master
24   pull_request:
25     branches:
26       - "**"
27 defaults:
28   run:
29     shell: "python src/ci/exec-with-shell.py {0}"
30 jobs:
31   pr:
32     name: PR
33     env:
34       CI_JOB_NAME: "${{ matrix.name }}"
35       SCCACHE_BUCKET: rust-lang-gha-caches
36       TOOLSTATE_REPO: "https://github.com/pietroalbini/rust-toolstate"
37     if: "github.event_name == 'pull_request'"
38     strategy:
39       matrix:
40         include:
41           - name: mingw-check
42             os: ubuntu-latest-xl
43             env: {}
44           - name: x86_64-gnu-llvm-8
45             os: ubuntu-latest-xl
46             env: {}
47           - name: x86_64-gnu-tools
48             env:
49               CI_ONLY_WHEN_SUBMODULES_CHANGED: 1
50             os: ubuntu-latest-xl
51     timeout-minutes: 600
52     runs-on: "${{ matrix.os }}"
53     steps:
54       - name: disable git crlf conversion
55         run: git config --global core.autocrlf false
56         shell: bash
57       - name: checkout the source code
58         uses: actions/checkout@v1
59         with:
60           fetch-depth: 2
61       - name: configure GitHub Actions to kill the build when outdated
62         uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
63         with:
64           github_token: "${{ secrets.github_token }}"
65         if: "success() && !env.SKIP_JOB && github.ref != 'refs/heads/try'"
66       - name: add extra environment variables
67         run: src/ci/scripts/setup-environment.sh
68         env:
69           EXTRA_VARIABLES: "${{ toJson(matrix.env) }}"
70         if: success() && !env.SKIP_JOB
71       - name: decide whether to skip this job
72         run: src/ci/scripts/should-skip-this.sh
73         if: success() && !env.SKIP_JOB
74       - name: collect CPU statistics
75         run: src/ci/scripts/collect-cpu-stats.sh
76         if: success() && !env.SKIP_JOB
77       - name: show the current environment
78         run: src/ci/scripts/dump-environment.sh
79         if: success() && !env.SKIP_JOB
80       - name: install awscli
81         run: src/ci/scripts/install-awscli.sh
82         if: success() && !env.SKIP_JOB
83       - name: install sccache
84         run: src/ci/scripts/install-sccache.sh
85         if: success() && !env.SKIP_JOB
86       - name: install clang
87         run: src/ci/scripts/install-clang.sh
88         if: success() && !env.SKIP_JOB
89       - name: install WIX
90         run: src/ci/scripts/install-wix.sh
91         if: success() && !env.SKIP_JOB
92       - name: install InnoSetup
93         run: src/ci/scripts/install-innosetup.sh
94         if: success() && !env.SKIP_JOB
95       - name: ensure the build happens on a partition with enough space
96         run: src/ci/scripts/symlink-build-dir.sh
97         if: success() && !env.SKIP_JOB
98       - name: disable git crlf conversion
99         run: src/ci/scripts/disable-git-crlf-conversion.sh
100         if: success() && !env.SKIP_JOB
101       - name: install MSYS2
102         run: src/ci/scripts/install-msys2.sh
103         if: success() && !env.SKIP_JOB
104       - name: install MSYS2 packages
105         run: src/ci/scripts/install-msys2-packages.sh
106         if: success() && !env.SKIP_JOB
107       - name: install MinGW
108         run: src/ci/scripts/install-mingw.sh
109         if: success() && !env.SKIP_JOB
110       - name: install ninja
111         run: src/ci/scripts/install-ninja.sh
112         if: success() && !env.SKIP_JOB
113       - name: enable ipv6 on Docker
114         run: src/ci/scripts/enable-docker-ipv6.sh
115         if: success() && !env.SKIP_JOB
116       - name: disable git crlf conversion
117         run: src/ci/scripts/disable-git-crlf-conversion.sh
118         if: success() && !env.SKIP_JOB
119       - name: checkout submodules
120         run: src/ci/scripts/checkout-submodules.sh
121         if: success() && !env.SKIP_JOB
122       - name: ensure line endings are correct
123         run: src/ci/scripts/verify-line-endings.sh
124         if: success() && !env.SKIP_JOB
125       - name: run the build
126         run: src/ci/scripts/run-build-from-ci.sh
127         env:
128           AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}"
129           AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}"
130           TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}"
131         if: success() && !env.SKIP_JOB
132       - name: upload artifacts to S3
133         run: src/ci/scripts/upload-artifacts.sh
134         env:
135           AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}"
136           AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}"
137         if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')"
138   try:
139     name: try
140     env:
141       CI_JOB_NAME: "${{ matrix.name }}"
142       SCCACHE_BUCKET: rust-lang-gha-caches
143       DEPLOY_BUCKET: rust-lang-gha
144       TOOLSTATE_REPO: "https://github.com/pietroalbini/rust-toolstate"
145       TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/pietroalbini/rust-toolstate/issues"
146       TOOLSTATE_PUBLISH: 1
147       CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZOMUQATD5
148       ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZH5AYXDVF
149     if: "github.event_name == 'push' && github.ref == 'refs/heads/try' && github.repository == 'rust-lang-ci/rust'"
150     strategy:
151       matrix:
152         include:
153           - name: dist-x86_64-linux
154             os: ubuntu-latest-xl
155             env: {}
156           - name: dist-x86_64-linux-alt
157             env:
158               IMAGE: dist-x86_64-linux
159             os: ubuntu-latest-xl
160     timeout-minutes: 600
161     runs-on: "${{ matrix.os }}"
162     steps:
163       - name: disable git crlf conversion
164         run: git config --global core.autocrlf false
165         shell: bash
166       - name: checkout the source code
167         uses: actions/checkout@v1
168         with:
169           fetch-depth: 2
170       - name: configure GitHub Actions to kill the build when outdated
171         uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
172         with:
173           github_token: "${{ secrets.github_token }}"
174         if: "success() && !env.SKIP_JOB && github.ref != 'refs/heads/try'"
175       - name: add extra environment variables
176         run: src/ci/scripts/setup-environment.sh
177         env:
178           EXTRA_VARIABLES: "${{ toJson(matrix.env) }}"
179         if: success() && !env.SKIP_JOB
180       - name: decide whether to skip this job
181         run: src/ci/scripts/should-skip-this.sh
182         if: success() && !env.SKIP_JOB
183       - name: collect CPU statistics
184         run: src/ci/scripts/collect-cpu-stats.sh
185         if: success() && !env.SKIP_JOB
186       - name: show the current environment
187         run: src/ci/scripts/dump-environment.sh
188         if: success() && !env.SKIP_JOB
189       - name: install awscli
190         run: src/ci/scripts/install-awscli.sh
191         if: success() && !env.SKIP_JOB
192       - name: install sccache
193         run: src/ci/scripts/install-sccache.sh
194         if: success() && !env.SKIP_JOB
195       - name: install clang
196         run: src/ci/scripts/install-clang.sh
197         if: success() && !env.SKIP_JOB
198       - name: install WIX
199         run: src/ci/scripts/install-wix.sh
200         if: success() && !env.SKIP_JOB
201       - name: install InnoSetup
202         run: src/ci/scripts/install-innosetup.sh
203         if: success() && !env.SKIP_JOB
204       - name: ensure the build happens on a partition with enough space
205         run: src/ci/scripts/symlink-build-dir.sh
206         if: success() && !env.SKIP_JOB
207       - name: disable git crlf conversion
208         run: src/ci/scripts/disable-git-crlf-conversion.sh
209         if: success() && !env.SKIP_JOB
210       - name: install MSYS2
211         run: src/ci/scripts/install-msys2.sh
212         if: success() && !env.SKIP_JOB
213       - name: install MSYS2 packages
214         run: src/ci/scripts/install-msys2-packages.sh
215         if: success() && !env.SKIP_JOB
216       - name: install MinGW
217         run: src/ci/scripts/install-mingw.sh
218         if: success() && !env.SKIP_JOB
219       - name: install ninja
220         run: src/ci/scripts/install-ninja.sh
221         if: success() && !env.SKIP_JOB
222       - name: enable ipv6 on Docker
223         run: src/ci/scripts/enable-docker-ipv6.sh
224         if: success() && !env.SKIP_JOB
225       - name: disable git crlf conversion
226         run: src/ci/scripts/disable-git-crlf-conversion.sh
227         if: success() && !env.SKIP_JOB
228       - name: checkout submodules
229         run: src/ci/scripts/checkout-submodules.sh
230         if: success() && !env.SKIP_JOB
231       - name: ensure line endings are correct
232         run: src/ci/scripts/verify-line-endings.sh
233         if: success() && !env.SKIP_JOB
234       - name: run the build
235         run: src/ci/scripts/run-build-from-ci.sh
236         env:
237           AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}"
238           AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}"
239           TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}"
240         if: success() && !env.SKIP_JOB
241       - name: upload artifacts to S3
242         run: src/ci/scripts/upload-artifacts.sh
243         env:
244           AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}"
245           AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}"
246         if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')"
247   auto:
248     name: auto
249     env:
250       CI_JOB_NAME: "${{ matrix.name }}"
251       SCCACHE_BUCKET: rust-lang-gha-caches
252       DEPLOY_BUCKET: rust-lang-gha
253       TOOLSTATE_REPO: "https://github.com/pietroalbini/rust-toolstate"
254       TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/pietroalbini/rust-toolstate/issues"
255       TOOLSTATE_PUBLISH: 1
256       CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZOMUQATD5
257       ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZH5AYXDVF
258     if: "github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'"
259     strategy:
260       matrix:
261         include:
262           - name: arm-android
263             os: ubuntu-latest-xl
264             env: {}
265           - name: armhf-gnu
266             os: ubuntu-latest-xl
267             env: {}
268           - name: dist-aarch64-linux
269             os: ubuntu-latest-xl
270             env: {}
271           - name: dist-android
272             os: ubuntu-latest-xl
273             env: {}
274           - name: dist-arm-linux
275             os: ubuntu-latest-xl
276             env: {}
277           - name: dist-armhf-linux
278             os: ubuntu-latest-xl
279             env: {}
280           - name: dist-armv7-linux
281             os: ubuntu-latest-xl
282             env: {}
283           - name: dist-i586-gnu-i586-i686-musl
284             os: ubuntu-latest-xl
285             env: {}
286           - name: dist-i686-freebsd
287             os: ubuntu-latest-xl
288             env: {}
289           - name: dist-i686-linux
290             os: ubuntu-latest-xl
291             env: {}
292           - name: dist-mips-linux
293             os: ubuntu-latest-xl
294             env: {}
295           - name: dist-mips64-linux
296             os: ubuntu-latest-xl
297             env: {}
298           - name: dist-mips64el-linux
299             os: ubuntu-latest-xl
300             env: {}
301           - name: dist-mipsel-linux
302             os: ubuntu-latest-xl
303             env: {}
304           - name: dist-powerpc-linux
305             os: ubuntu-latest-xl
306             env: {}
307           - name: dist-powerpc64-linux
308             os: ubuntu-latest-xl
309             env: {}
310           - name: dist-powerpc64le-linux
311             os: ubuntu-latest-xl
312             env: {}
313           - name: dist-s390x-linux
314             os: ubuntu-latest-xl
315             env: {}
316           - name: dist-various-1
317             os: ubuntu-latest-xl
318             env: {}
319           - name: dist-various-2
320             os: ubuntu-latest-xl
321             env: {}
322           - name: dist-x86_64-freebsd
323             os: ubuntu-latest-xl
324             env: {}
325           - name: dist-x86_64-linux
326             os: ubuntu-latest-xl
327             env: {}
328           - name: dist-x86_64-linux-alt
329             env:
330               IMAGE: dist-x86_64-linux
331             os: ubuntu-latest-xl
332           - name: dist-x86_64-musl
333             os: ubuntu-latest-xl
334             env: {}
335           - name: dist-x86_64-netbsd
336             os: ubuntu-latest-xl
337             env: {}
338           - name: i686-gnu
339             os: ubuntu-latest-xl
340             env: {}
341           - name: i686-gnu-nopt
342             os: ubuntu-latest-xl
343             env: {}
344           - name: mingw-check
345             os: ubuntu-latest-xl
346             env: {}
347           - name: test-various
348             os: ubuntu-latest-xl
349             env: {}
350           - name: wasm32
351             os: ubuntu-latest-xl
352             env: {}
353           - name: x86_64-gnu
354             os: ubuntu-latest-xl
355             env: {}
356           - name: x86_64-gnu-aux
357             os: ubuntu-latest-xl
358             env: {}
359           - name: x86_64-gnu-debug
360             os: ubuntu-latest-xl
361             env: {}
362           - name: x86_64-gnu-distcheck
363             os: ubuntu-latest-xl
364             env: {}
365           - name: x86_64-gnu-full-bootstrap
366             os: ubuntu-latest-xl
367             env: {}
368           - name: x86_64-gnu-llvm-8
369             env:
370               RUST_BACKTRACE: 1
371             os: ubuntu-latest-xl
372           - name: x86_64-gnu-nopt
373             os: ubuntu-latest-xl
374             env: {}
375           - name: x86_64-gnu-tools
376             env:
377               DEPLOY_TOOLSTATES_JSON: toolstates-linux.json
378             os: ubuntu-latest-xl
379           - name: dist-x86_64-apple
380             env:
381               SCRIPT: "./x.py dist"
382               RUST_CONFIGURE_ARGS: "--target=aarch64-apple-ios,x86_64-apple-ios --enable-full-tools --enable-sanitizers --enable-profiler --set rust.jemalloc"
383               RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
384               MACOSX_DEPLOYMENT_TARGET: 10.7
385               NO_LLVM_ASSERTIONS: 1
386               NO_DEBUG_ASSERTIONS: 1
387               DIST_REQUIRE_ALL_TOOLS: 1
388             os: macos-latest
389           - name: dist-x86_64-apple-alt
390             env:
391               SCRIPT: "./x.py dist"
392               RUST_CONFIGURE_ARGS: "--enable-extended --enable-profiler --set rust.jemalloc"
393               RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
394               MACOSX_DEPLOYMENT_TARGET: 10.7
395               NO_LLVM_ASSERTIONS: 1
396               NO_DEBUG_ASSERTIONS: 1
397             os: macos-latest
398           - name: x86_64-apple
399             env:
400               SCRIPT: "./x.py test"
401               RUST_CONFIGURE_ARGS: "--build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc"
402               RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
403               MACOSX_DEPLOYMENT_TARGET: 10.8
404               MACOSX_STD_DEPLOYMENT_TARGET: 10.7
405               NO_LLVM_ASSERTIONS: 1
406               NO_DEBUG_ASSERTIONS: 1
407             os: macos-latest
408           - name: x86_64-msvc-1
409             env:
410               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler"
411               SCRIPT: make ci-subset-1
412               NO_DEBUG_ASSERTIONS: 1
413               NO_LLVM_ASSERTIONS: 1
414             os: windows-latest-xl
415           - name: x86_64-msvc-2
416             env:
417               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler"
418               SCRIPT: make ci-subset-2
419             os: windows-latest-xl
420           - name: i686-msvc-1
421             env:
422               RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-msvc"
423               SCRIPT: make ci-subset-1
424               NO_DEBUG_ASSERTIONS: 1
425               NO_LLVM_ASSERTIONS: 1
426             os: windows-latest-xl
427           - name: i686-msvc-2
428             env:
429               RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-msvc"
430               SCRIPT: make ci-subset-2
431               NO_DEBUG_ASSERTIONS: 1
432               NO_LLVM_ASSERTIONS: 1
433             os: windows-latest-xl
434           - name: x86_64-msvc-aux
435             env:
436               RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
437               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc"
438             os: windows-latest-xl
439           - name: x86_64-msvc-cargo
440             env:
441               SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
442               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc"
443               VCVARS_BAT: vcvars64.bat
444               NO_DEBUG_ASSERTIONS: 1
445               NO_LLVM_ASSERTIONS: 1
446             os: windows-latest-xl
447           - name: x86_64-msvc-tools
448             env:
449               SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
450               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json"
451             os: windows-latest-xl
452           - name: i686-mingw-1
453             env:
454               RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-gnu"
455               SCRIPT: make ci-mingw-subset-1
456               CUSTOM_MINGW: 1
457               NO_DEBUG_ASSERTIONS: 1
458               NO_LLVM_ASSERTIONS: 1
459             os: windows-latest-xl
460           - name: i686-mingw-2
461             env:
462               RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-gnu"
463               SCRIPT: make ci-mingw-subset-2
464               CUSTOM_MINGW: 1
465             os: windows-latest-xl
466           - name: x86_64-mingw-1
467             env:
468               SCRIPT: make ci-mingw-subset-1
469               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-gnu"
470               CUSTOM_MINGW: 1
471               NO_DEBUG_ASSERTIONS: 1
472               NO_LLVM_ASSERTIONS: 1
473             os: windows-latest-xl
474           - name: x86_64-mingw-2
475             env:
476               SCRIPT: make ci-mingw-subset-2
477               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-gnu"
478               CUSTOM_MINGW: 1
479             os: windows-latest-xl
480           - name: dist-x86_64-msvc
481             env:
482               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc --enable-full-tools --enable-profiler"
483               SCRIPT: python x.py dist
484               DIST_REQUIRE_ALL_TOOLS: 1
485             os: windows-latest-xl
486           - name: dist-i686-msvc
487             env:
488               RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-msvc --target=i586-pc-windows-msvc --enable-full-tools --enable-profiler"
489               SCRIPT: python x.py dist
490               DIST_REQUIRE_ALL_TOOLS: 1
491             os: windows-latest-xl
492           - name: dist-i686-mingw
493             env:
494               RUST_CONFIGURE_ARGS: "--build=i686-pc-windows-gnu --enable-full-tools --enable-profiler"
495               SCRIPT: python x.py dist
496               CUSTOM_MINGW: 1
497               DIST_REQUIRE_ALL_TOOLS: 1
498             os: windows-latest-xl
499           - name: dist-x86_64-mingw
500             env:
501               SCRIPT: python x.py dist
502               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-gnu --enable-full-tools --enable-profiler"
503               CUSTOM_MINGW: 1
504               DIST_REQUIRE_ALL_TOOLS: 1
505             os: windows-latest-xl
506           - name: dist-x86_64-msvc-alt
507             env:
508               RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-extended --enable-profiler"
509               SCRIPT: python x.py dist
510             os: windows-latest-xl
511     timeout-minutes: 600
512     runs-on: "${{ matrix.os }}"
513     steps:
514       - name: disable git crlf conversion
515         run: git config --global core.autocrlf false
516         shell: bash
517       - name: checkout the source code
518         uses: actions/checkout@v1
519         with:
520           fetch-depth: 2
521       - name: configure GitHub Actions to kill the build when outdated
522         uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
523         with:
524           github_token: "${{ secrets.github_token }}"
525         if: "success() && !env.SKIP_JOB && github.ref != 'refs/heads/try'"
526       - name: add extra environment variables
527         run: src/ci/scripts/setup-environment.sh
528         env:
529           EXTRA_VARIABLES: "${{ toJson(matrix.env) }}"
530         if: success() && !env.SKIP_JOB
531       - name: decide whether to skip this job
532         run: src/ci/scripts/should-skip-this.sh
533         if: success() && !env.SKIP_JOB
534       - name: collect CPU statistics
535         run: src/ci/scripts/collect-cpu-stats.sh
536         if: success() && !env.SKIP_JOB
537       - name: show the current environment
538         run: src/ci/scripts/dump-environment.sh
539         if: success() && !env.SKIP_JOB
540       - name: install awscli
541         run: src/ci/scripts/install-awscli.sh
542         if: success() && !env.SKIP_JOB
543       - name: install sccache
544         run: src/ci/scripts/install-sccache.sh
545         if: success() && !env.SKIP_JOB
546       - name: install clang
547         run: src/ci/scripts/install-clang.sh
548         if: success() && !env.SKIP_JOB
549       - name: install WIX
550         run: src/ci/scripts/install-wix.sh
551         if: success() && !env.SKIP_JOB
552       - name: install InnoSetup
553         run: src/ci/scripts/install-innosetup.sh
554         if: success() && !env.SKIP_JOB
555       - name: ensure the build happens on a partition with enough space
556         run: src/ci/scripts/symlink-build-dir.sh
557         if: success() && !env.SKIP_JOB
558       - name: disable git crlf conversion
559         run: src/ci/scripts/disable-git-crlf-conversion.sh
560         if: success() && !env.SKIP_JOB
561       - name: install MSYS2
562         run: src/ci/scripts/install-msys2.sh
563         if: success() && !env.SKIP_JOB
564       - name: install MSYS2 packages
565         run: src/ci/scripts/install-msys2-packages.sh
566         if: success() && !env.SKIP_JOB
567       - name: install MinGW
568         run: src/ci/scripts/install-mingw.sh
569         if: success() && !env.SKIP_JOB
570       - name: install ninja
571         run: src/ci/scripts/install-ninja.sh
572         if: success() && !env.SKIP_JOB
573       - name: enable ipv6 on Docker
574         run: src/ci/scripts/enable-docker-ipv6.sh
575         if: success() && !env.SKIP_JOB
576       - name: disable git crlf conversion
577         run: src/ci/scripts/disable-git-crlf-conversion.sh
578         if: success() && !env.SKIP_JOB
579       - name: checkout submodules
580         run: src/ci/scripts/checkout-submodules.sh
581         if: success() && !env.SKIP_JOB
582       - name: ensure line endings are correct
583         run: src/ci/scripts/verify-line-endings.sh
584         if: success() && !env.SKIP_JOB
585       - name: run the build
586         run: src/ci/scripts/run-build-from-ci.sh
587         env:
588           AWS_ACCESS_KEY_ID: "${{ env.CACHES_AWS_ACCESS_KEY_ID }}"
589           AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}"
590           TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}"
591         if: success() && !env.SKIP_JOB
592       - name: upload artifacts to S3
593         run: src/ci/scripts/upload-artifacts.sh
594         env:
595           AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}"
596           AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}"
597         if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')"
598   master:
599     name: master
600     runs-on: ubuntu-latest
601     env:
602       SCCACHE_BUCKET: rust-lang-gha-caches
603       DEPLOY_BUCKET: rust-lang-gha
604       TOOLSTATE_REPO: "https://github.com/pietroalbini/rust-toolstate"
605       TOOLSTATE_ISSUES_API_URL: "https://api.github.com/repos/pietroalbini/rust-toolstate/issues"
606       TOOLSTATE_PUBLISH: 1
607       CACHES_AWS_ACCESS_KEY_ID: AKIA46X5W6CZOMUQATD5
608       ARTIFACTS_AWS_ACCESS_KEY_ID: AKIA46X5W6CZH5AYXDVF
609     if: "github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'rust-lang-ci/rust'"
610     steps:
611       - name: checkout the source code
612         uses: actions/checkout@v1
613         with:
614           fetch-depth: 2
615       - name: publish toolstate
616         run: src/ci/publish_toolstate.sh
617         env:
618           TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}"
619         if: success() && !env.SKIP_JOB
620   try-success:
621     needs:
622       - try
623     if: "success() && github.event_name == 'push' && github.ref == 'refs/heads/try' && github.repository == 'rust-lang-ci/rust'"
624     steps:
625       - name: mark the job as a success
626         run: exit 0
627         shell: bash
628     name: bors build finished
629     runs-on: ubuntu-latest
630   try-failure:
631     needs:
632       - try
633     if: "!success() && github.event_name == 'push' && github.ref == 'refs/heads/try' && github.repository == 'rust-lang-ci/rust'"
634     steps:
635       - name: mark the job as a failure
636         run: exit 1
637         shell: bash
638     name: bors build finished
639     runs-on: ubuntu-latest
640   auto-success:
641     needs:
642       - auto
643     if: "success() && github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'"
644     steps:
645       - name: mark the job as a success
646         run: exit 0
647         shell: bash
648     name: bors build finished
649     runs-on: ubuntu-latest
650   auto-failure:
651     needs:
652       - auto
653     if: "!success() && github.event_name == 'push' && github.ref == 'refs/heads/auto' && github.repository == 'rust-lang-ci/rust'"
654     steps:
655       - name: mark the job as a failure
656         run: exit 1
657         shell: bash
658     name: bors build finished
659     runs-on: ubuntu-latest