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