Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit dec4c52

Browse files
committedMay 24, 2019
Auto merge of #60777 - pietroalbini:azure-pipelines, r=alexcrichton
Add Azure Pipelines configuration Huge thanks to @johnterickson and @willsmythe for writing the initial config! ❤️ I applied some changes to the initial config and disabled most of the builders since we're not going to run all of them during the initial step for the evaluation. [More details about our plans for the Azure Pipelines evaluation.](https://internals.rust-lang.org/t/update-on-the-ci-investigation/10056) r? @alexcrichton @kennytm cc @rust-lang/infra @ethomson @rylev
2 parents fc45382 + 2244ca3 commit dec4c52

File tree

16 files changed

+817
-22
lines changed

16 files changed

+817
-22
lines changed
 

‎.azure-pipelines/auto.yml‎

Lines changed: 350 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,350 @@
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+
pool:
15+
vmImage: ubuntu-16.04
16+
steps:
17+
- template: steps/run.yml
18+
strategy:
19+
matrix:
20+
x86_64-gnu-llvm-6.0:
21+
IMAGE: x86_64-gnu-llvm-6.0
22+
RUST_BACKTRACE: 1
23+
24+
dist-x86_64-linux:
25+
IMAGE: dist-x86_64-linux
26+
DEPLOY: 1
27+
28+
# "alternate" deployments, these are "nightlies" but have LLVM assertions
29+
# turned on, they're deployed to a different location primarily for
30+
# additional testing.
31+
dist-x86_64-linux-alt:
32+
IMAGE: dist-x86_64-linux
33+
DEPLOY_ALT: 1
34+
35+
# Linux builders, remaining docker images
36+
arm-android:
37+
IMAGE: arm-android
38+
39+
armhf-gnu:
40+
IMAGE: armhf-gnu
41+
42+
dist-various-1:
43+
IMAGE: dist-various-1
44+
DEPLOY: 1
45+
46+
dist-various-2:
47+
IMAGE: dist-various-2
48+
DEPLOY: 1
49+
50+
dist-aarch64-linux:
51+
IMAGE: dist-aarch64-linux
52+
DEPLOY: 1
53+
54+
dist-android:
55+
IMAGE: dist-android
56+
DEPLOY: 1
57+
58+
dist-arm-linux:
59+
IMAGE: dist-arm-linux
60+
DEPLOY: 1
61+
62+
dist-armhf-linux:
63+
IMAGE: dist-armhf-linux
64+
DEPLOY: 1
65+
66+
dist-armv7-linux:
67+
IMAGE: dist-armv7-linux
68+
DEPLOY: 1
69+
70+
dist-i586-gnu-i586-i686-musl:
71+
IMAGE: dist-i586-gnu-i586-i686-musl
72+
DEPLOY: 1
73+
74+
dist-i686-freebsd:
75+
IMAGE: dist-i686-freebsd
76+
DEPLOY: 1
77+
78+
dist-i686-linux:
79+
IMAGE: dist-i686-linux
80+
DEPLOY: 1
81+
82+
dist-mips-linux:
83+
IMAGE: dist-mips-linux
84+
DEPLOY: 1
85+
86+
dist-mips64-linux:
87+
IMAGE: dist-mips64-linux
88+
DEPLOY: 1
89+
90+
dist-mips64el-linux:
91+
IMAGE: dist-mips64el-linux
92+
DEPLOY: 1
93+
94+
dist-mipsel-linux:
95+
IMAGE: dist-mipsel-linux
96+
DEPLOY: 1
97+
98+
dist-powerpc-linux:
99+
IMAGE: dist-powerpc-linux
100+
DEPLOY: 1
101+
102+
dist-powerpc64-linux:
103+
IMAGE: dist-powerpc64-linux
104+
DEPLOY: 1
105+
106+
dist-powerpc64le-linux:
107+
IMAGE: dist-powerpc64le-linux
108+
DEPLOY: 1
109+
110+
dist-s390x-linux:
111+
IMAGE: dist-s390x-linux
112+
DEPLOY: 1
113+
114+
dist-x86_64-freebsd:
115+
IMAGE: dist-x86_64-freebsd
116+
DEPLOY: 1
117+
118+
dist-x86_64-musl:
119+
IMAGE: dist-x86_64-musl
120+
DEPLOY: 1
121+
122+
dist-x86_64-netbsd:
123+
IMAGE: dist-x86_64-netbsd
124+
DEPLOY: 1
125+
126+
asmjs:
127+
IMAGE: asmjs
128+
i686-gnu:
129+
IMAGE: i686-gnu
130+
i686-gnu-nopt:
131+
IMAGE: i686-gnu-nopt
132+
test-various:
133+
IMAGE: test-various
134+
x86_64-gnu:
135+
IMAGE: x86_64-gnu
136+
x86_64-gnu-full-bootstrap:
137+
IMAGE: x86_64-gnu-full-bootstrap
138+
x86_64-gnu-aux:
139+
IMAGE: x86_64-gnu-aux
140+
x86_64-gnu-tools:
141+
IMAGE: x86_64-gnu-tools
142+
# FIXME if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
143+
x86_64-gnu-debug:
144+
IMAGE: x86_64-gnu-debug
145+
x86_64-gnu-nopt:
146+
IMAGE: x86_64-gnu-nopt
147+
x86_64-gnu-distcheck:
148+
IMAGE: x86_64-gnu-distcheck
149+
mingw-check:
150+
IMAGE: mingw-check
151+
152+
- job: macOS
153+
pool:
154+
vmImage: macos-10.13
155+
steps:
156+
- checkout: self
157+
fetchDepth: 2
158+
- template: steps/run.yml
159+
strategy:
160+
matrix:
161+
# OSX builders running tests, these run the full test suite.
162+
# NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some
163+
# runners that run `//ignore-debug` tests.
164+
#
165+
# Note that the compiler is compiled to target 10.8 here because the Xcode
166+
# version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
167+
x86_64-apple:
168+
RUST_CHECK_TARGET: check
169+
RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
170+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
171+
MACOSX_DEPLOYMENT_TARGET: 10.8
172+
MACOSX_STD_DEPLOYMENT_TARGET: 10.7
173+
NO_LLVM_ASSERTIONS: 1
174+
NO_DEBUG_ASSERTIONS: 1
175+
176+
dist-x86_64-apple:
177+
RUST_CHECK_TARGET: dist
178+
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 --enable-lldb --set rust.jemalloc
179+
DEPLOY: 1
180+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
181+
MACOSX_DEPLOYMENT_TARGET: 10.7
182+
NO_LLVM_ASSERTIONS: 1
183+
NO_DEBUG_ASSERTIONS: 1
184+
DIST_REQUIRE_ALL_TOOLS: 1
185+
186+
dist-x86_64-apple-alt:
187+
RUST_CHECK_TARGET: dist
188+
RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
189+
DEPLOY_ALT: 1
190+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
191+
MACOSX_DEPLOYMENT_TARGET: 10.7
192+
NO_LLVM_ASSERTIONS: 1
193+
NO_DEBUG_ASSERTIONS: 1
194+
195+
i686-apple:
196+
RUST_CHECK_TARGET: check
197+
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --set rust.jemalloc
198+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
199+
MACOSX_DEPLOYMENT_TARGET: 10.8
200+
MACOSX_STD_DEPLOYMENT_TARGET: 10.7
201+
NO_LLVM_ASSERTIONS: 1
202+
NO_DEBUG_ASSERTIONS: 1
203+
204+
dist-i686-apple:
205+
RUST_CHECK_TARGET: dist
206+
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
207+
DEPLOY: 1
208+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
209+
MACOSX_DEPLOYMENT_TARGET: 10.7
210+
NO_LLVM_ASSERTIONS: 1
211+
NO_DEBUG_ASSERTIONS: 1
212+
DIST_REQUIRE_ALL_TOOLS: 1
213+
214+
215+
216+
- job: Windows
217+
pool:
218+
vmImage: 'vs2017-win2016'
219+
steps:
220+
- template: steps/run.yml
221+
strategy:
222+
matrix:
223+
# 32/64 bit MSVC tests
224+
x86_64-msvc-1:
225+
MSYS_BITS: 64
226+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
227+
SCRIPT: make ci-subset-1
228+
# FIXME(#59637)
229+
NO_DEBUG_ASSERTIONS: 1
230+
NO_LLVM_ASSERTIONS: 1
231+
x86_64-msvc-2:
232+
MSYS_BITS: 64
233+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
234+
SCRIPT: make ci-subset-2
235+
i686-msvc-1:
236+
MSYS_BITS: 32
237+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
238+
SCRIPT: make ci-subset-1
239+
i686-msvc-2:
240+
MSYS_BITS: 32
241+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
242+
SCRIPT: make ci-subset-2
243+
# MSVC aux tests
244+
x86_64-msvc-aux:
245+
MSYS_BITS: 64
246+
RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
247+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
248+
x86_64-msvc-cargo:
249+
MSYS_BITS: 64
250+
SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
251+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
252+
VCVARS_BAT: vcvars64.bat
253+
# MSVC tools tests
254+
x86_64-msvc-tools:
255+
MSYS_BITS: 64
256+
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstates.json windows
257+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstates.json --enable-test-miri
258+
259+
# 32/64-bit MinGW builds.
260+
#
261+
# We are using MinGW with posix threads since LLVM does not compile with
262+
# the win32 threads version due to missing support for C++'s std::thread.
263+
#
264+
# Instead of relying on the MinGW version installed on appveryor we download
265+
# and install one ourselves so we won't be surprised by changes to appveyor's
266+
# build image.
267+
#
268+
# Finally, note that the downloads below are all in the `rust-lang-ci` S3
269+
# bucket, but they cleraly didn't originate there! The downloads originally
270+
# came from the mingw-w64 SourceForge download site. Unfortunately
271+
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
272+
i686-mingw-1:
273+
MSYS_BITS: 32
274+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
275+
SCRIPT: make ci-subset-1
276+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
277+
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
278+
MINGW_DIR: mingw32
279+
# FIXME(#59637)
280+
NO_DEBUG_ASSERTIONS: 1
281+
NO_LLVM_ASSERTIONS: 1
282+
i686-mingw-2:
283+
MSYS_BITS: 32
284+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
285+
SCRIPT: make ci-subset-2
286+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
287+
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
288+
MINGW_DIR: mingw32
289+
x86_64-mingw-1:
290+
MSYS_BITS: 64
291+
SCRIPT: make ci-subset-1
292+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
293+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
294+
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
295+
MINGW_DIR: mingw64
296+
# FIXME(#59637)
297+
NO_DEBUG_ASSERTIONS: 1
298+
NO_LLVM_ASSERTIONS: 1
299+
x86_64-mingw-2:
300+
MSYS_BITS: 64
301+
SCRIPT: make ci-subset-2
302+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
303+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
304+
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
305+
MINGW_DIR: mingw64
306+
307+
# 32/64 bit MSVC and GNU deployment
308+
dist-x86_64-msvc:
309+
RUST_CONFIGURE_ARGS: >
310+
--build=x86_64-pc-windows-msvc
311+
--target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
312+
--enable-full-tools
313+
--enable-profiler
314+
SCRIPT: python x.py dist
315+
DIST_REQUIRE_ALL_TOOLS: 1
316+
DEPLOY: 1
317+
dist-i686-msvc:
318+
RUST_CONFIGURE_ARGS: >
319+
--build=i686-pc-windows-msvc
320+
--target=i586-pc-windows-msvc
321+
--enable-full-tools
322+
--enable-profiler
323+
SCRIPT: python x.py dist
324+
DIST_REQUIRE_ALL_TOOLS: 1
325+
DEPLOY: 1
326+
dist-i686-mingw:
327+
MSYS_BITS: 32
328+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
329+
SCRIPT: python x.py dist
330+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
331+
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
332+
MINGW_DIR: mingw32
333+
DIST_REQUIRE_ALL_TOOLS: 1
334+
DEPLOY: 1
335+
dist-x86_64-mingw:
336+
MSYS_BITS: 64
337+
SCRIPT: python x.py dist
338+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
339+
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
340+
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
341+
MINGW_DIR: mingw64
342+
DIST_REQUIRE_ALL_TOOLS: 1
343+
DEPLOY: 1
344+
345+
# "alternate" deployment, see .travis.yml for more info
346+
dist-x86_64-msvc-alt:
347+
MSYS_BITS: 64
348+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
349+
SCRIPT: python x.py dist
350+
DEPLOY_ALT: 1

‎.azure-pipelines/master.yml‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# Azure Pipelines job to publish toolstate. Only triggers on pushes to master.
3+
#
4+
5+
pr: none
6+
trigger:
7+
- master
8+
9+
pool:
10+
vmImage: ubuntu-16.04
11+
12+
steps:
13+
- checkout: self
14+
fetchDepth: 2
15+
16+
- script: |
17+
export MESSAGE_FILE=$(mktemp -t msg.XXXXXX)
18+
. src/ci/docker/x86_64-gnu-tools/repo.sh
19+
# FIXME(pietro): committing is disabled until we switch to Azure Pipelines
20+
# as the source of truth, or until we setup a separate test repo.
21+
#commit_toolstate_change "$MESSAGE_FILE" "$BUILD_SOURCESDIRECTORY/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "$MESSAGE_FILE" "$TOOLSTATE_REPO_ACCESS_TOKEN"
22+
displayName: Publish toolstate
23+
env:
24+
TOOLSTATE_REPO_ACCESS_TOKEN: $(TOOLSTATE_REPO_ACCESS_TOKEN_SECRET)

‎.azure-pipelines/pr.yml‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# Azure Pipelines pull request build for Rust
3+
#
4+
5+
trigger: none
6+
pr:
7+
- master # FIXME: really just want any branch, but want an explicit "pr" property set so it's clear
8+
9+
jobs:
10+
- job: Linux
11+
pool:
12+
vmImage: ubuntu-16.04
13+
steps:
14+
- template: steps/run.yml
15+
strategy:
16+
matrix:
17+
x86_64-gnu-llvm-6.0:
18+
RUST_BACKTRACE: 1
19+
20+
# x86_64-gnu-tools: {}
21+
# # if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
22+
# mingw-check: {}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
steps:
2+
3+
- bash: |
4+
set -e
5+
curl -f http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz | tar xJf -
6+
7+
export CC=`pwd`/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang
8+
echo "##vso[task.setvariable variable=CC]$CC"
9+
10+
export CXX=`pwd`/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang++
11+
echo "##vso[task.setvariable variable=CXX]$CXX"
12+
13+
# Configure `AR` specifically so rustbuild doesn't try to infer it as
14+
# `clang-ar` by accident.
15+
echo "##vso[task.setvariable variable=AR]ar"
16+
displayName: Install clang (OSX)
17+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
18+
19+
# If we're compiling for MSVC then we, like most other distribution builders,
20+
# switch to clang as the compiler. This'll allow us eventually to enable LTO
21+
# amongst LLVM and rustc. Note that we only do this on MSVC as I don't think
22+
# clang has an output mode compatible with MinGW that we need. If it does we
23+
# should switch to clang for MinGW as well!
24+
#
25+
# Note that the LLVM installer is an NSIS installer
26+
#
27+
# Original downloaded here came from
28+
# http://releases.llvm.org/7.0.0/LLVM-7.0.0-win64.exe
29+
- script: |
30+
powershell -Command "iwr -outf %TEMP%\LLVM-7.0.0-win64.exe https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/LLVM-7.0.0-win64.exe"
31+
set CLANG_DIR=%CD%\citools\clang-rust
32+
%TEMP%\LLVM-7.0.0-win64.exe /S /NCRC /D=%CLANG_DIR%
33+
set RUST_CONFIGURE_ARGS=%RUST_CONFIGURE_ARGS% --set llvm.clang-cl=%CLANG_DIR%\bin\clang-cl.exe
34+
echo ##vso[task.setvariable variable=RUST_CONFIGURE_ARGS]%RUST_CONFIGURE_ARGS%
35+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['MINGW_URL'],''))
36+
displayName: Install clang (Windows)
37+
38+
# Note that we don't install clang on Linux since its compiler story is just so
39+
# different. Each container has its own toolchain configured appropriately
40+
# already.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
steps:
2+
3+
- bash: |
4+
set -e
5+
curl -fo /usr/local/bin/sccache https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2018-04-02-sccache-x86_64-apple-darwin
6+
chmod +x /usr/local/bin/sccache
7+
displayName: Install sccache (OSX)
8+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
9+
10+
- script: |
11+
md sccache
12+
powershell -Command "iwr -outf sccache\sccache.exe https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2018-04-26-sccache-x86_64-pc-windows-msvc"
13+
echo ##vso[task.prependpath]%CD%\sccache
14+
displayName: Install sccache (Windows)
15+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
16+
17+
# Note that we don't install sccache on Linux since it's installed elsewhere
18+
# through all the containers.
19+
#
20+
# FIXME: we should probably install sccache outside the containers and then
21+
# mount it inside the containers so we can centralize all installation here.
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
steps:
2+
# We've had issues with the default drive in use running out of space during a
3+
# build, and it looks like the `C:` drive has more space than the default `D:`
4+
# drive. We should probably confirm this with the azure pipelines team at some
5+
# point, but this seems to fix our "disk space full" problems.
6+
- script: |
7+
mkdir c:\MORE_SPACE
8+
mklink /J build c:\MORE_SPACE
9+
displayName: "Ensure build happens on C:/ instead of D:/"
10+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
11+
12+
# Download and install MSYS2, needed primarily for the test suite (run-make) but
13+
# also used by the MinGW toolchain for assembling things.
14+
#
15+
# FIXME: we should probe the default azure image and see if we can use the MSYS2
16+
# toolchain there. (if there's even one there). For now though this gets the job
17+
# done.
18+
- script: |
19+
set MSYS_PATH=%CD%\citools\msys64
20+
choco install msys2 --params="/InstallDir:%MSYS_PATH% /NoPath" -y
21+
set PATH=%MSYS_PATH%\usr\bin;%PATH%
22+
pacman -S --noconfirm --needed base-devel ca-certificates make diffutils tar
23+
IF "%MINGW_URL%"=="" (
24+
IF "%MSYS_BITS%"=="32" pacman -S --noconfirm --needed mingw-w64-i686-toolchain mingw-w64-i686-cmake mingw-w64-i686-gcc mingw-w64-i686-python2
25+
IF "%MSYS_BITS%"=="64" pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-python2
26+
)
27+
where rev
28+
rev --help
29+
where make
30+
31+
echo ##vso[task.setvariable variable=MSYS_PATH]%MSYS_PATH%
32+
echo ##vso[task.prependpath]%MSYS_PATH%\usr\bin
33+
displayName: Install msys2
34+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
35+
36+
# If we need to download a custom MinGW, do so here and set the path
37+
# appropriately.
38+
#
39+
# Here we also do a pretty heinous thing which is to mangle the MinGW
40+
# installation we just downloaded. Currently, as of this writing, we're using
41+
# MinGW-w64 builds of gcc, and that's currently at 6.3.0. We use 6.3.0 as it
42+
# appears to be the first version which contains a fix for #40546, builds
43+
# randomly failing during LLVM due to ar.exe/ranlib.exe failures.
44+
#
45+
# Unfortunately, though, 6.3.0 *also* is the first version of MinGW-w64 builds
46+
# to contain a regression in gdb (#40184). As a result if we were to use the
47+
# gdb provided (7.11.1) then we would fail all debuginfo tests.
48+
#
49+
# In order to fix spurious failures (pretty high priority) we use 6.3.0. To
50+
# avoid disabling gdb tests we download an *old* version of gdb, specifically
51+
# that found inside the 6.2.0 distribution. We then overwrite the 6.3.0 gdb
52+
# with the 6.2.0 gdb to get tests passing.
53+
#
54+
# Note that we don't literally overwrite the gdb.exe binary because it appears
55+
# to just use gdborig.exe, so that's the binary we deal with instead.
56+
- script: |
57+
powershell -Command "iwr -outf %MINGW_ARCHIVE% %MINGW_URL%/%MINGW_ARCHIVE%"
58+
7z x -y %MINGW_ARCHIVE% > nul
59+
powershell -Command "iwr -outf 2017-04-20-%MSYS_BITS%bit-gdborig.exe %MINGW_URL%/2017-04-20-%MSYS_BITS%bit-gdborig.exe"
60+
mv 2017-04-20-%MSYS_BITS%bit-gdborig.exe %MINGW_DIR%\bin\gdborig.exe
61+
echo ##vso[task.prependpath]%CD%\%MINGW_DIR%\bin
62+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), ne(variables['MINGW_URL'],''))
63+
displayName: Download custom MinGW
64+
65+
# Otherwise pull in the MinGW installed on appveyor
66+
- script: |
67+
echo ##vso[task.prependpath]%MSYS_PATH%\mingw%MSYS_BITS%\bin
68+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['MINGW_URL'],''))
69+
displayName: Add MinGW to path
70+
71+
# Make sure we use the native python interpreter instead of some msys equivalent
72+
# one way or another. The msys interpreters seem to have weird path conversions
73+
# baked in which break LLVM's build system one way or another, so let's use the
74+
# native version which keeps everything as native as possible.
75+
- script: |
76+
copy C:\Python27amd64\python.exe C:\Python27amd64\python2.7.exe
77+
echo ##vso[task.prependpath]C:\Python27amd64
78+
displayName: Prefer the "native" Python as LLVM has trouble building with MSYS sometimes
79+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
80+
81+
# Note that this is originally from the github releases patch of Ninja
82+
- script: |
83+
md ninja
84+
powershell -Command "iwr -outf 2017-03-15-ninja-win.zip https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2017-03-15-ninja-win.zip"
85+
7z x -oninja 2017-03-15-ninja-win.zip
86+
del 2017-03-15-ninja-win.zip
87+
set RUST_CONFIGURE_ARGS=%RUST_CONFIGURE_ARGS% --enable-ninja
88+
echo ##vso[task.setvariable variable=RUST_CONFIGURE_ARGS]%RUST_CONFIGURE_ARGS%
89+
echo ##vso[task.prependpath]%CD%\ninja
90+
displayName: Download and install ninja
91+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))

‎.azure-pipelines/steps/run.yml‎

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
# FIXME(linux): need to configure core dumps, enable them, and then dump
2+
# backtraces on failure from all core dumps:
3+
#
4+
# - bash: sudo apt install gdb
5+
# - bash: sudo sh -c 'echo "/checkout/obj/cores/core.%p.%E" > /proc/sys/kernel/core_pattern'
6+
#
7+
# Check travis config for `gdb --batch` command to print all crash logs
8+
9+
steps:
10+
11+
- checkout: self
12+
fetchDepth: 2
13+
14+
- bash: printenv | sort
15+
displayName: Show environment variables
16+
17+
- bash: |
18+
set -e
19+
df -h
20+
du . | sort -nr | head -n100
21+
displayName: Show disk usage
22+
# FIXME: this hasn't been tested, but maybe it works on Windows? Should test!
23+
condition: and(succeeded(), ne(variables['Agent.OS'], 'Windows_NT'))
24+
25+
- template: install-sccache.yml
26+
- template: install-clang.yml
27+
28+
# Install some dependencies needed to build LLDB/Clang, currently only needed
29+
# during the `dist` target
30+
- bash: |
31+
set -e
32+
brew update
33+
brew install xz
34+
brew install swig
35+
displayName: Install build dependencies (OSX)
36+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'), eq(variables['RUST_CHECK_TARGET'],'dist'))
37+
38+
# Switch to XCode 9.3 on OSX since it seems to be the last version that supports
39+
# i686-apple-darwin. We'll eventually want to upgrade this and it will probably
40+
# force us to drop i686-apple-darwin, but let's keep the wheels turning for now.
41+
- bash: |
42+
set -e
43+
sudo xcode-select --switch /Applications/Xcode_9.3.app
44+
displayName: Switch to Xcode 9.3 (OSX)
45+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
46+
47+
- template: install-windows-build-deps.yml
48+
49+
# Looks like docker containers have IPv6 disabled by default, so let's turn it
50+
# on since libstd tests require it
51+
- bash: |
52+
set -e
53+
echo '{"ipv6":true,"fixed-cidr-v6":"fd9a:8454:6789:13f7::/64"}' | sudo tee /etc/docker/daemon.json
54+
sudo service docker restart
55+
displayName: Enable IPv6
56+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
57+
58+
# Check out all our submodules, but more quickly than using git by using one of
59+
# our custom scripts
60+
- bash: |
61+
set -e
62+
mkdir -p $HOME/rustsrc
63+
$BUILD_SOURCESDIRECTORY/src/ci/init_repo.sh . $HOME/rustsrc
64+
condition: and(succeeded(), ne(variables['Agent.OS'], 'Windows_NT'))
65+
displayName: Check out submodules (Unix)
66+
- script: |
67+
if not exist D:\cache\rustsrc\NUL mkdir D:\cache\rustsrc
68+
sh src/ci/init_repo.sh . /d/cache/rustsrc
69+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
70+
displayName: Check out submodules (Windows)
71+
72+
# Ensure the `aws` CLI is installed so we can deploy later on, cache docker
73+
# images, etc.
74+
- bash: |
75+
set -e
76+
sudo apt-get install -y python3-setuptools
77+
pip3 install awscli --upgrade --user
78+
echo "##vso[task.prependpath]$HOME/.local/bin"
79+
displayName: Install awscli (Linux)
80+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
81+
- script: pip install awscli
82+
displayName: Install awscli (non-Linux)
83+
condition: and(succeeded(), ne(variables['Agent.OS'], 'Linux'))
84+
85+
# Configure our CI_JOB_NAME variable which log analyzers can use for the main
86+
# step to see what's going on.
87+
- bash: echo "##vso[task.setvariable variable=CI_JOB_NAME]$SYSTEM_JOBNAME"
88+
displayName: Configure Job Name
89+
90+
# As a quick smoke check on the otherwise very fast mingw-check linux builder
91+
# check our own internal scripts.
92+
- bash: |
93+
set -e
94+
git clone --depth=1 https://github.com/rust-lang-nursery/rust-toolstate.git
95+
cd rust-toolstate
96+
python2.7 "$BUILD_SOURCESDIRECTORY/src/tools/publish_toolstate.py" "$(git rev-parse HEAD)" "$(git log --format=%s -n1 HEAD)" "" ""
97+
cd ..
98+
rm -rf rust-toolstate
99+
condition: and(succeeded(), eq(variables['IMAGE'], 'mingw-check'))
100+
displayName: Verify the publish_toolstate script works
101+
102+
- bash: |
103+
set -e
104+
if [ "$IMAGE" = "" ]; then
105+
src/ci/run.sh
106+
else
107+
src/ci/docker/run.sh $IMAGE
108+
fi
109+
#timeoutInMinutes: 180
110+
timeoutInMinutes: 600
111+
env:
112+
CI: true
113+
SRC: .
114+
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
115+
displayName: Run build
116+
117+
# If we're a deploy builder, use the `aws` command to publish everything to our
118+
# bucket.
119+
- bash: |
120+
set -e
121+
if [ "$AGENT_OS" = "Linux" ]; then
122+
rm -rf obj/build/dist/doc
123+
upload_dir=obj/build/dist
124+
else
125+
rm -rf build/dist/doc
126+
upload_dir=build/dist
127+
fi
128+
ls -la $upload_dir
129+
deploy_dir=rustc-builds
130+
if [ "$DEPLOY_ALT" == "1" ]; then
131+
deploy_dir=rustc-builds-alt
132+
fi
133+
aws s3 cp --no-progress --recursive --acl public-read ./$upload_dir s3://$DEPLOY_BUCKET/$deploy_dir/$BUILD_SOURCEVERSION
134+
env:
135+
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
136+
condition: and(succeeded(), or(eq(variables.DEPLOY, '1'), eq(variables.DEPLOY_ALT, '1')))
137+
displayName: Upload artifacts

‎.azure-pipelines/try.yml‎

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#
2+
# Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
3+
#
4+
5+
pr: none
6+
trigger:
7+
- try
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+
dist-x86_64-linux:
22+
IMAGE: dist-x86_64-linux
23+
DEPLOY: 1
24+
25+
dist-x86_64-linux-alt:
26+
IMAGE: dist-x86_64-linux
27+
DEPLOY_ALT: 1
28+
29+
- job: macOS
30+
timeoutInMinutes: 600
31+
pool:
32+
vmImage: macos-10.13
33+
steps:
34+
- template: steps/run.yml
35+
strategy:
36+
matrix:
37+
dist-x86_64-apple:
38+
RUST_CHECK_TARGET: dist
39+
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 --enable-lldb --set rust.jemalloc
40+
DEPLOY: 1
41+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
42+
MACOSX_DEPLOYMENT_TARGET: 10.7
43+
NO_LLVM_ASSERTIONS: 1
44+
NO_DEBUG_ASSERTIONS: 1
45+
DIST_REQUIRE_ALL_TOOLS: 1
46+
47+
dist-x86_64-apple-alt:
48+
RUST_CHECK_TARGET: dist
49+
RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
50+
DEPLOY_ALT: 1
51+
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
52+
MACOSX_DEPLOYMENT_TARGET: 10.7
53+
NO_LLVM_ASSERTIONS: 1
54+
NO_DEBUG_ASSERTIONS: 1
55+
56+
- job: Windows
57+
timeoutInMinutes: 600
58+
pool:
59+
vmImage: 'vs2017-win2016'
60+
steps:
61+
- template: steps/run.yml
62+
strategy:
63+
matrix:
64+
dist-x86_64-msvc:
65+
RUST_CONFIGURE_ARGS: >
66+
--build=x86_64-pc-windows-msvc
67+
--target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
68+
--enable-full-tools
69+
--enable-profiler
70+
SCRIPT: python x.py dist
71+
DIST_REQUIRE_ALL_TOOLS: 1
72+
DEPLOY: 1
73+
74+
dist-x86_64-msvc-alt:
75+
MSYS_BITS: 64
76+
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
77+
SCRIPT: python x.py dist
78+
DEPLOY_ALT: 1

‎appveyor.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ environment:
2020
- CI_JOB_NAME: i686-msvc-1
2121
MSYS_BITS: 32
2222
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
23-
SCRIPT: make appveyor-subset-1
23+
SCRIPT: make ci-subset-1
2424
- CI_JOB_NAME: i686-msvc-2
2525
MSYS_BITS: 32
2626
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
27-
SCRIPT: make appveyor-subset-2
27+
SCRIPT: make ci-subset-2
2828

2929
# MSVC aux tests
3030
- CI_JOB_NAME: x86_64-msvc-aux
@@ -58,7 +58,7 @@ environment:
5858
- CI_JOB_NAME: i686-mingw-1
5959
MSYS_BITS: 32
6060
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
61-
SCRIPT: make appveyor-subset-1
61+
SCRIPT: make ci-subset-1
6262
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
6363
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
6464
MINGW_DIR: mingw32
@@ -68,7 +68,7 @@ environment:
6868
- CI_JOB_NAME: i686-mingw-2
6969
MSYS_BITS: 32
7070
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
71-
SCRIPT: make appveyor-subset-2
71+
SCRIPT: make ci-subset-2
7272
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
7373
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
7474
MINGW_DIR: mingw32

‎src/bootstrap/mk/Makefile.in‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ TESTS_IN_2 := \
8080
src/test/run-pass-fulldeps \
8181
src/tools/linkchecker
8282

83-
appveyor-subset-1:
83+
ci-subset-1:
8484
$(Q)$(BOOTSTRAP) test $(TESTS_IN_2:%=--exclude %)
85-
appveyor-subset-2:
85+
ci-subset-2:
8686
$(Q)$(BOOTSTRAP) test $(TESTS_IN_2)
8787

8888

‎src/bootstrap/util.rs‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,8 @@ pub enum CiEnv {
326326
Travis,
327327
/// The AppVeyor environment, for Windows builds.
328328
AppVeyor,
329+
/// The Azure Pipelines environment, for Linux (including Docker), Windows, and macOS builds.
330+
AzurePipelines,
329331
}
330332

331333
impl CiEnv {
@@ -335,6 +337,8 @@ impl CiEnv {
335337
CiEnv::Travis
336338
} else if env::var("APPVEYOR").ok().map_or(false, |e| &*e == "True") {
337339
CiEnv::AppVeyor
340+
} else if env::var("TF_BUILD").ok().map_or(false, |e| &*e == "True") {
341+
CiEnv::AzurePipelines
338342
} else {
339343
CiEnv::None
340344
}

‎src/ci/docker/dist-various-2/Dockerfile‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ COPY dist-various-2/build-cloudabi-toolchain.sh /tmp/
3232
RUN /tmp/build-cloudabi-toolchain.sh x86_64-unknown-cloudabi
3333
COPY dist-various-2/build-fuchsia-toolchain.sh /tmp/
3434
RUN /tmp/build-fuchsia-toolchain.sh
35-
COPY dist-various-2/build-solaris-toolchain.sh /tmp/
36-
RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386
37-
RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
35+
# FIXME(#61022) - reenable solaris
36+
# COPY dist-various-2/build-solaris-toolchain.sh /tmp/
37+
# RUN /tmp/build-solaris-toolchain.sh x86_64 amd64 solaris-i386
38+
# RUN /tmp/build-solaris-toolchain.sh sparcv9 sparcv9 solaris-sparc
3839
COPY dist-various-2/build-x86_64-fortanix-unknown-sgx-toolchain.sh /tmp/
3940
# We pass the commit id of the port of LLVM's libunwind to the build script.
4041
# Any update to the commit id here, should cause the container image to be re-built from this point on.
@@ -73,10 +74,11 @@ ENV CARGO_TARGET_AARCH64_FUCHSIA_RUSTFLAGS \
7374

7475
ENV TARGETS=x86_64-fuchsia
7576
ENV TARGETS=$TARGETS,aarch64-fuchsia
76-
ENV TARGETS=$TARGETS,sparcv9-sun-solaris
7777
ENV TARGETS=$TARGETS,wasm32-unknown-unknown
7878
ENV TARGETS=$TARGETS,wasm32-wasi
79-
ENV TARGETS=$TARGETS,x86_64-sun-solaris
79+
# FIXME(#61022) - reenable solaris
80+
# ENV TARGETS=$TARGETS,sparcv9-sun-solaris
81+
# ENV TARGETS=$TARGETS,x86_64-sun-solaris
8082
ENV TARGETS=$TARGETS,x86_64-unknown-linux-gnux32
8183
ENV TARGETS=$TARGETS,x86_64-unknown-cloudabi
8284
ENV TARGETS=$TARGETS,x86_64-fortanix-unknown-sgx

‎src/ci/docker/run.sh‎

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@ if [ -f "$docker_dir/$image/Dockerfile" ]; then
4040
docker --version >> $hash_key
4141
cksum=$(sha512sum $hash_key | \
4242
awk '{print $1}')
43+
4344
s3url="s3://$SCCACHE_BUCKET/docker/$cksum"
44-
url="https://s3-us-west-1.amazonaws.com/$SCCACHE_BUCKET/docker/$cksum"
45-
echo "Attempting to download $s3url"
45+
url="https://$SCCACHE_BUCKET.s3.amazonaws.com/docker/$cksum"
46+
upload="aws s3 cp - $s3url"
47+
48+
echo "Attempting to download $url"
4649
rm -f /tmp/rustci_docker_cache
4750
set +e
4851
retry curl -y 30 -Y 10 --connect-timeout 30 -f -L -C - -o /tmp/rustci_docker_cache "$url"
@@ -65,17 +68,17 @@ if [ -f "$docker_dir/$image/Dockerfile" ]; then
6568
-f "$dockerfile" \
6669
"$context"
6770

68-
if [ "$s3url" != "" ]; then
71+
if [ "$upload" != "" ]; then
6972
digest=$(docker inspect rust-ci --format '{{.Id}}')
7073
echo "Built container $digest"
7174
if ! grep -q "$digest" <(echo "$loaded_images"); then
72-
echo "Uploading finished image to $s3url"
75+
echo "Uploading finished image to $url"
7376
set +e
7477
docker history -q rust-ci | \
7578
grep -v missing | \
7679
xargs docker save | \
7780
gzip | \
78-
aws s3 cp - $s3url
81+
$upload
7982
set -e
8083
else
8184
echo "Looks like docker image is the same as before, not uploading"
@@ -87,8 +90,8 @@ if [ -f "$docker_dir/$image/Dockerfile" ]; then
8790
echo "$digest" >>"$info"
8891
fi
8992
elif [ -f "$docker_dir/disabled/$image/Dockerfile" ]; then
90-
if [ -n "$TRAVIS_OS_NAME" ]; then
91-
echo Cannot run disabled images on travis!
93+
if isCI; then
94+
echo Cannot run disabled images on CI!
9295
exit 1
9396
fi
9497
# retry messes with the pipe from tar to docker. Not needed on non-travis
@@ -140,8 +143,11 @@ exec docker \
140143
--env DEPLOY \
141144
--env DEPLOY_ALT \
142145
--env LOCAL_USER_ID=`id -u` \
146+
--env CI \
143147
--env TRAVIS \
144148
--env TRAVIS_BRANCH \
149+
--env TF_BUILD \
150+
--env BUILD_SOURCEBRANCHNAME \
145151
--env TOOLSTATE_REPO_ACCESS_TOKEN \
146152
--env CI_JOB_NAME="${CI_JOB_NAME-$IMAGE}" \
147153
--volume "$HOME/.cargo:/cargo" \

‎src/ci/run.sh‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ fi
2323
ci_dir=`cd $(dirname $0) && pwd`
2424
source "$ci_dir/shared.sh"
2525

26-
if [ "$TRAVIS" != "true" ] || [ "$TRAVIS_BRANCH" == "auto" ]; then
26+
branch_name=$(getCIBranch)
27+
28+
if [ ! isCI ] || [ "$branch_name" = "auto" ]; then
2729
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set build.print-step-timings --enable-verbose-tests"
2830
fi
2931

@@ -44,7 +46,7 @@ fi
4446
# FIXME: need a scheme for changing this `nightly` value to `beta` and `stable`
4547
# either automatically or manually.
4648
export RUST_RELEASE_CHANNEL=nightly
47-
if [ "$DEPLOY$DEPLOY_ALT" != "" ]; then
49+
if [ "$DEPLOY$DEPLOY_ALT" = "1" ]; then
4850
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --release-channel=$RUST_RELEASE_CHANNEL"
4951
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-llvm-static-stdcpp"
5052
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set rust.remap-debuginfo"
@@ -110,7 +112,7 @@ travis_time_finish
110112
# Display the CPU and memory information. This helps us know why the CI timing
111113
# is fluctuating.
112114
travis_fold start log-system-info
113-
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
115+
if isOSX; then
114116
system_profiler SPHardwareDataType || true
115117
sysctl hw || true
116118
ncpus=$(sysctl -n hw.ncpu)
@@ -139,3 +141,5 @@ else
139141
do_make all
140142
do_make "$RUST_CHECK_TARGET"
141143
fi
144+
145+
sccache --show-stats || true

‎src/ci/shared.sh‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ function retry {
2424
done
2525
}
2626

27+
function isCI {
28+
[ "$CI" = "true" ] || [ "$TRAVIS" = "true" ] || [ "$TF_BUILD" = "True" ]
29+
}
30+
31+
function isOSX {
32+
[ "$TRAVIS_OS_NAME" = "osx" ] || [ "$AGENT_OS" = "Darwin" ]
33+
}
34+
35+
function getCIBranch {
36+
if [ "$TRAVIS" = "true" ]; then
37+
echo "$TRAVIS_BRANCH"
38+
else
39+
echo "$BUILD_SOURCEBRANCHNAME"
40+
fi;
41+
}
42+
2743
if ! declare -F travis_fold; then
2844
if [ "${TRAVIS-false}" = 'true' ]; then
2945
# This is a trimmed down copy of

‎src/tools/cargotest/main.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ const TEST_REPOS: &'static [Test] = &[
6161
Test {
6262
name: "webrender",
6363
repo: "https://github.com/servo/webrender",
64-
sha: "57250b2b8fa63934f80e5376a29f7dcb3f759ad6",
64+
sha: "cdadd068f4c7218bd983d856981d561e605270ab",
6565
lock: None,
6666
packages: &[],
6767
},

0 commit comments

Comments
 (0)
Please sign in to comment.