]> git.lizzy.rs Git - rust.git/blob - src/ci/azure-pipelines/auto.yml
70d6bad297dce4c890ee98a1c7b611a4dd831d32
[rust.git] / src / ci / azure-pipelines / auto.yml
1 #
2 # Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
3 #
4
5 pr: none
6 trigger:
7   - auto
8
9 variables:
10 - group: prod-credentials
11
12 jobs:
13 - job: Linux
14   timeoutInMinutes: 600
15   pool:
16     vmImage: ubuntu-16.04
17   steps:
18   - template: steps/run.yml
19   strategy:
20     matrix:
21       x86_64-gnu-llvm-7:
22         RUST_BACKTRACE: 1
23       dist-x86_64-linux: {}
24       dist-x86_64-linux-alt:
25         IMAGE: dist-x86_64-linux
26       arm-android: {}
27       armhf-gnu: {}
28       dist-various-1: {}
29       dist-various-2: {}
30       dist-aarch64-linux: {}
31       dist-android: {}
32       dist-arm-linux: {}
33       dist-armhf-linux: {}
34       dist-armv7-linux: {}
35       dist-i586-gnu-i586-i686-musl: {}
36       dist-i686-freebsd: {}
37       dist-i686-linux: {}
38       dist-mips-linux: {}
39       dist-mips64-linux: {}
40       dist-mips64el-linux: {}
41       dist-mipsel-linux: {}
42       dist-powerpc-linux: {}
43       dist-powerpc64-linux: {}
44       dist-powerpc64le-linux: {}
45       dist-s390x-linux: {}
46       dist-x86_64-freebsd: {}
47       dist-x86_64-musl: {}
48       dist-x86_64-netbsd: {}
49       i686-gnu: {}
50       i686-gnu-nopt: {}
51       test-various: {}
52       wasm32: {}
53       x86_64-gnu: {}
54       x86_64-gnu-full-bootstrap: {}
55       x86_64-gnu-aux: {}
56       x86_64-gnu-tools:
57         DEPLOY_TOOLSTATES_JSON: toolstates-linux.json
58       x86_64-gnu-debug: {}
59       x86_64-gnu-nopt: {}
60       x86_64-gnu-distcheck: {}
61       mingw-check: {}
62
63 - job: macOS
64   timeoutInMinutes: 600
65   pool:
66     vmImage: macos-10.13
67   steps:
68   - template: steps/run.yml
69   strategy:
70     matrix:
71       # OSX builders running tests, these run the full test suite.
72       # NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some
73       # runners that run `//ignore-debug` tests.
74       #
75       # Note that the compiler is compiled to target 10.8 here because the Xcode
76       # version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
77       x86_64-apple:
78         SCRIPT: ./x.py test
79         RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
80         RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
81         MACOSX_DEPLOYMENT_TARGET: 10.8
82         MACOSX_STD_DEPLOYMENT_TARGET: 10.7
83         NO_LLVM_ASSERTIONS: 1
84         NO_DEBUG_ASSERTIONS: 1
85
86       dist-x86_64-apple:
87         SCRIPT: ./x.py dist
88         RUST_CONFIGURE_ARGS: --target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-full-tools --enable-sanitizers --enable-profiler --set rust.jemalloc
89         RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
90         MACOSX_DEPLOYMENT_TARGET: 10.7
91         NO_LLVM_ASSERTIONS: 1
92         NO_DEBUG_ASSERTIONS: 1
93         DIST_REQUIRE_ALL_TOOLS: 1
94
95       dist-x86_64-apple-alt:
96         SCRIPT: ./x.py dist
97         RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --set rust.jemalloc
98         RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
99         MACOSX_DEPLOYMENT_TARGET: 10.7
100         NO_LLVM_ASSERTIONS: 1
101         NO_DEBUG_ASSERTIONS: 1
102
103       i686-apple:
104         SCRIPT: ./x.py test
105         RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --set rust.jemalloc
106         RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
107         MACOSX_DEPLOYMENT_TARGET: 10.8
108         MACOSX_STD_DEPLOYMENT_TARGET: 10.7
109         NO_LLVM_ASSERTIONS: 1
110         NO_DEBUG_ASSERTIONS: 1
111
112       dist-i686-apple:
113         SCRIPT: ./x.py dist
114         RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --set rust.jemalloc
115         RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
116         MACOSX_DEPLOYMENT_TARGET: 10.7
117         NO_LLVM_ASSERTIONS: 1
118         NO_DEBUG_ASSERTIONS: 1
119         DIST_REQUIRE_ALL_TOOLS: 1
120
121
122
123 - job: Windows
124   timeoutInMinutes: 600
125   pool:
126     vmImage: 'vs2017-win2016'
127   steps:
128   - template: steps/run.yml
129   strategy:
130     matrix:
131       # 32/64 bit MSVC tests
132       x86_64-msvc-1:
133         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
134         SCRIPT: make ci-subset-1
135         # FIXME(#59637)
136         NO_DEBUG_ASSERTIONS: 1
137         NO_LLVM_ASSERTIONS: 1
138       x86_64-msvc-2:
139         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
140         SCRIPT: make ci-subset-2
141       i686-msvc-1:
142         RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
143         SCRIPT: make ci-subset-1
144         # FIXME(#59637)
145         NO_DEBUG_ASSERTIONS: 1
146         NO_LLVM_ASSERTIONS: 1
147       i686-msvc-2:
148         RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
149         SCRIPT: make ci-subset-2
150         # FIXME(#59637)
151         NO_DEBUG_ASSERTIONS: 1
152         NO_LLVM_ASSERTIONS: 1
153       # MSVC aux tests
154       x86_64-msvc-aux:
155         RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
156         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
157       x86_64-msvc-cargo:
158         SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
159         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
160         VCVARS_BAT: vcvars64.bat
161         # FIXME(#59637)
162         NO_DEBUG_ASSERTIONS: 1
163         NO_LLVM_ASSERTIONS: 1
164       # MSVC tools tests
165       x86_64-msvc-tools:
166         SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
167         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstate/toolstates.json
168
169       # 32/64-bit MinGW builds.
170       #
171       # We are using MinGW with posix threads since LLVM does not compile with
172       # the win32 threads version due to missing support for C++'s std::thread.
173       #
174       # Instead of relying on the MinGW version installed on appveryor we download
175       # and install one ourselves so we won't be surprised by changes to appveyor's
176       # build image.
177       #
178       # Finally, note that the downloads below are all in the `rust-lang-ci` S3
179       # bucket, but they cleraly didn't originate there! The downloads originally
180       # came from the mingw-w64 SourceForge download site. Unfortunately
181       # SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
182       i686-mingw-1:
183         RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
184         SCRIPT: make ci-mingw-subset-1
185         CUSTOM_MINGW: 1
186         # FIXME(#59637)
187         NO_DEBUG_ASSERTIONS: 1
188         NO_LLVM_ASSERTIONS: 1
189       i686-mingw-2:
190         RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
191         SCRIPT: make ci-mingw-subset-2
192         CUSTOM_MINGW: 1
193       x86_64-mingw-1:
194         SCRIPT: make ci-mingw-subset-1
195         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
196         CUSTOM_MINGW: 1
197         # FIXME(#59637)
198         NO_DEBUG_ASSERTIONS: 1
199         NO_LLVM_ASSERTIONS: 1
200       x86_64-mingw-2:
201         SCRIPT: make ci-mingw-subset-2
202         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
203         CUSTOM_MINGW: 1
204
205       # 32/64 bit MSVC and GNU deployment
206       dist-x86_64-msvc:
207         RUST_CONFIGURE_ARGS: >-
208           --build=x86_64-pc-windows-msvc
209           --target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
210           --enable-full-tools
211           --enable-profiler
212         SCRIPT: python x.py dist
213         DIST_REQUIRE_ALL_TOOLS: 1
214       dist-i686-msvc:
215         RUST_CONFIGURE_ARGS: >-
216           --build=i686-pc-windows-msvc
217           --target=i586-pc-windows-msvc
218           --enable-full-tools
219           --enable-profiler
220         SCRIPT: python x.py dist
221         DIST_REQUIRE_ALL_TOOLS: 1
222       dist-i686-mingw:
223         RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools --enable-profiler
224         SCRIPT: python x.py dist
225         CUSTOM_MINGW: 1
226         DIST_REQUIRE_ALL_TOOLS: 1
227       dist-x86_64-mingw:
228         SCRIPT: python x.py dist
229         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools --enable-profiler
230         CUSTOM_MINGW: 1
231         DIST_REQUIRE_ALL_TOOLS: 1
232
233       # "alternate" deployment, see .travis.yml for more info
234       dist-x86_64-msvc-alt:
235         RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
236         SCRIPT: python x.py dist