Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Azure Pipelines configuration #60777

Merged
merged 59 commits into from
May 24, 2019
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
699376a
Add Azure Pipelines
johnterickson May 6, 2019
e234a90
Disable 32-bit OSX
johnterickson May 6, 2019
c50517a
ci: reduce all azure timeouts to 3 hours
pietroalbini May 10, 2019
abd4b3a
ci: remove travis ipv6 docker hack on azure
pietroalbini May 10, 2019
869ddd8
ci: still use aws for caches
pietroalbini May 10, 2019
7dfd8ce
ci: remove fanout from the azure pipelines config
pietroalbini May 12, 2019
aab0bb4
ci: merge the i1686-gnu images
pietroalbini May 12, 2019
94f7660
ci: re-enable fds-are-cloexec test on macOS
pietroalbini May 12, 2019
06bc0da
ci: remove test configuration
pietroalbini May 12, 2019
5db55e6
ci: disable toolstate commits on azure
pietroalbini May 12, 2019
da94978
ci: remove trailing whitespaces from azure config
pietroalbini May 13, 2019
694ea76
ci: remove links to johnterickson repo
pietroalbini May 13, 2019
807b7dd
ci: disable builders not useful during the evaluation
pietroalbini May 13, 2019
4965ffd
Update src/bootstrap/util.rs
pietroalbini May 13, 2019
92bf1e6
ci: update azure variable groups
pietroalbini May 15, 2019
30b008f
ci: remove stray echo
pietroalbini May 15, 2019
bf639a1
ci: remove outdated comment
pietroalbini May 15, 2019
a89e8d2
ci: remove yet another outdated comment
pietroalbini May 20, 2019
f23c1ba
ci: use ##vso[task.prependpath] on azure
pietroalbini May 20, 2019
d27cb82
ci: add an image for dist-x86_64-linux try on azure
pietroalbini May 20, 2019
9f37b3a
ci: deploy artifacts on azure
pietroalbini May 20, 2019
79d28c2
Don't bother with `stamp` utility
alexcrichton May 20, 2019
1be9fe6
Refactor azure pipelines configuration
alexcrichton May 20, 2019
4183f3c
Configure a few more builders on `try` temporarily
alexcrichton May 20, 2019
91b1655
Remove a now stray file
alexcrichton May 20, 2019
528cce9
Job name config works for all platforms
alexcrichton May 20, 2019
7b266ff
Fix a typo in clang install
alexcrichton May 20, 2019
804ec5f
Execute `docker/run.sh` on Linux
alexcrichton May 20, 2019
fa8d3b5
Fix a typo in the run script
alexcrichton May 20, 2019
0843207
Make sure sccache not present doesn't kill the build
alexcrichton May 20, 2019
751597f
Check out rustfmt submodule through tarballs
alexcrichton May 20, 2019
9b8af06
Manually install AWS CLI
alexcrichton May 20, 2019
12f3701
Only execute conditional steps on success
alexcrichton May 20, 2019
9843a79
Finalize AWS install
alexcrichton May 20, 2019
e6830c1
Merge pull request #2 from alexcrichton/azure-pipelines
pietroalbini May 21, 2019
1daab47
ci: temp increase of the timeout to 10 hours
pietroalbini May 21, 2019
67db230
ci: fix tidy
pietroalbini May 21, 2019
d2304e1
ci: increase timeout, take 2
pietroalbini May 21, 2019
0e5f02f
Fix typo in key configuration
alexcrichton May 21, 2019
571366f
Attempt to enable IPv6 for Linux
alexcrichton May 21, 2019
a83250d
Update upload logic to upload right directory
alexcrichton May 21, 2019
ebdc36e
Re-enable hack for Windows builds to see if it works
alexcrichton May 21, 2019
55108b3
Run a full build on `try` temporarily
alexcrichton May 21, 2019
e8f0e70
Typos
alexcrichton May 21, 2019
a225551
Only run Window script on Windows
alexcrichton May 21, 2019
7b7e172
Place timeouts at the job level
alexcrichton May 21, 2019
0f4b546
Go back to fewer builders to test on `try`
alexcrichton May 21, 2019
8d42b87
Use new-style s3 urls in docker download script
alexcrichton May 21, 2019
190d198
ci: switch to xcode 9.3 on azure
pietroalbini May 21, 2019
beea4f5
Execute everything!
alexcrichton May 21, 2019
78965f4
Use xcode 9.3 on all osx builders
alexcrichton May 21, 2019
e764f47
Disable solaris target since toolchain no longer builds
alexcrichton May 21, 2019
fe3dd0b
Merge remote-tracking branch 'origin/master' into azure-pipelines
alexcrichton May 21, 2019
e0ed2a3
Correct the upload_dir in script
alexcrichton May 21, 2019
e5418f6
Update webrender we're testing
alexcrichton May 21, 2019
36ee777
remove azure badge from the readme
pietroalbini May 22, 2019
a8ac80b
Final cleanups
alexcrichton May 22, 2019
24f262f
ci: toggle builders
pietroalbini May 22, 2019
2244ca3
ci: fix invalid syntax in the azure auto.yml
pietroalbini May 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
350 changes: 350 additions & 0 deletions .azure-pipelines/auto.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,350 @@
#
# Azure Pipelines "auto" branch build for Rust on Linux, macOS, and Windows.
#

pr: none
trigger:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This space breaks stuff:

/.azure-pipelines/auto.yml: (Line: 6, Col: 9, Idx: 99) - (Line: 6, Col: 9, Idx: 99): Mapping values are not allowed in this context.

- auto
pietroalbini marked this conversation as resolved.
Show resolved Hide resolved

variables:
- group: prod-credentials

jobs:
- job: Linux
pool:
vmImage: ubuntu-16.04
steps:
- template: steps/run.yml
strategy:
matrix:
x86_64-gnu-llvm-6.0:
IMAGE: x86_64-gnu-llvm-6.0
RUST_BACKTRACE: 1

dist-x86_64-linux:
IMAGE: dist-x86_64-linux
DEPLOY: 1

# "alternate" deployments, these are "nightlies" but have LLVM assertions
# turned on, they're deployed to a different location primarily for
# additional testing.
dist-x86_64-linux-alt:
IMAGE: dist-x86_64-linux
DEPLOY_ALT: 1

# Linux builders, remaining docker images
arm-android:
IMAGE: arm-android

armhf-gnu:
IMAGE: armhf-gnu

dist-various-1:
IMAGE: dist-various-1
DEPLOY: 1

dist-various-2:
IMAGE: dist-various-2
DEPLOY: 1

dist-aarch64-linux:
IMAGE: dist-aarch64-linux
DEPLOY: 1

dist-android:
IMAGE: dist-android
DEPLOY: 1

dist-arm-linux:
IMAGE: dist-arm-linux
DEPLOY: 1

dist-armhf-linux:
IMAGE: dist-armhf-linux
DEPLOY: 1

dist-armv7-linux:
IMAGE: dist-armv7-linux
DEPLOY: 1

dist-i586-gnu-i586-i686-musl:
IMAGE: dist-i586-gnu-i586-i686-musl
DEPLOY: 1

dist-i686-freebsd:
IMAGE: dist-i686-freebsd
DEPLOY: 1

dist-i686-linux:
IMAGE: dist-i686-linux
DEPLOY: 1

dist-mips-linux:
IMAGE: dist-mips-linux
DEPLOY: 1

dist-mips64-linux:
IMAGE: dist-mips64-linux
DEPLOY: 1

dist-mips64el-linux:
IMAGE: dist-mips64el-linux
DEPLOY: 1

dist-mipsel-linux:
IMAGE: dist-mipsel-linux
DEPLOY: 1

dist-powerpc-linux:
IMAGE: dist-powerpc-linux
DEPLOY: 1

dist-powerpc64-linux:
IMAGE: dist-powerpc64-linux
DEPLOY: 1

dist-powerpc64le-linux:
IMAGE: dist-powerpc64le-linux
DEPLOY: 1

dist-s390x-linux:
IMAGE: dist-s390x-linux
DEPLOY: 1

dist-x86_64-freebsd:
IMAGE: dist-x86_64-freebsd
DEPLOY: 1

dist-x86_64-musl:
IMAGE: dist-x86_64-musl
DEPLOY: 1

dist-x86_64-netbsd:
IMAGE: dist-x86_64-netbsd
DEPLOY: 1

asmjs:
IMAGE: asmjs
i686-gnu:
IMAGE: i686-gnu
i686-gnu-nopt:
IMAGE: i686-gnu-nopt
test-various:
IMAGE: test-various
x86_64-gnu:
IMAGE: x86_64-gnu
x86_64-gnu-full-bootstrap:
IMAGE: x86_64-gnu-full-bootstrap
x86_64-gnu-aux:
IMAGE: x86_64-gnu-aux
x86_64-gnu-tools:
IMAGE: x86_64-gnu-tools
# FIXME if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
x86_64-gnu-debug:
IMAGE: x86_64-gnu-debug
x86_64-gnu-nopt:
IMAGE: x86_64-gnu-nopt
x86_64-gnu-distcheck:
IMAGE: x86_64-gnu-distcheck
mingw-check:
IMAGE: mingw-check

- job: macOS
pool:
vmImage: macos-10.13
steps:
- checkout: self
fetchDepth: 2
- template: steps/run.yml
strategy:
matrix:
# OSX builders running tests, these run the full test suite.
# NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some
# runners that run `//ignore-debug` tests.
#
# Note that the compiler is compiled to target 10.8 here because the Xcode
# version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
x86_64-apple:
RUST_CHECK_TARGET: check
RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.8
MACOSX_STD_DEPLOYMENT_TARGET: 10.7
NO_LLVM_ASSERTIONS: 1
NO_DEBUG_ASSERTIONS: 1

dist-x86_64-apple:
RUST_CHECK_TARGET: dist
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
DEPLOY: 1
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.7
NO_LLVM_ASSERTIONS: 1
NO_DEBUG_ASSERTIONS: 1
DIST_REQUIRE_ALL_TOOLS: 1

dist-x86_64-apple-alt:
RUST_CHECK_TARGET: dist
RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --enable-lldb --set rust.jemalloc
DEPLOY_ALT: 1
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.7
NO_LLVM_ASSERTIONS: 1
NO_DEBUG_ASSERTIONS: 1

i686-apple:
RUST_CHECK_TARGET: check
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --set rust.jemalloc
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.8
MACOSX_STD_DEPLOYMENT_TARGET: 10.7
NO_LLVM_ASSERTIONS: 1
NO_DEBUG_ASSERTIONS: 1

dist-i686-apple:
RUST_CHECK_TARGET: dist
RUST_CONFIGURE_ARGS: --build=i686-apple-darwin --enable-full-tools --enable-profiler --enable-lldb --set rust.jemalloc
DEPLOY: 1
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.7
NO_LLVM_ASSERTIONS: 1
NO_DEBUG_ASSERTIONS: 1
DIST_REQUIRE_ALL_TOOLS: 1



- job: Windows
pool:
vmImage: 'vs2017-win2016'
pietroalbini marked this conversation as resolved.
Show resolved Hide resolved
steps:
- template: steps/run.yml
strategy:
matrix:
# 32/64 bit MSVC tests
x86_64-msvc-1:
MSYS_BITS: 64
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
SCRIPT: make ci-subset-1
# FIXME(#59637)
NO_DEBUG_ASSERTIONS: 1
NO_LLVM_ASSERTIONS: 1
x86_64-msvc-2:
MSYS_BITS: 64
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
SCRIPT: make ci-subset-2
i686-msvc-1:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
SCRIPT: make ci-subset-1
i686-msvc-2:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
SCRIPT: make ci-subset-2
# MSVC aux tests
x86_64-msvc-aux:
MSYS_BITS: 64
RUST_CHECK_TARGET: check-aux EXCLUDE_CARGO=1
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
x86_64-msvc-cargo:
MSYS_BITS: 64
SCRIPT: python x.py test src/tools/cargotest src/tools/cargo
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
VCVARS_BAT: vcvars64.bat
# MSVC tools tests
x86_64-msvc-tools:
MSYS_BITS: 64
SCRIPT: src/ci/docker/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstates.json windows
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --save-toolstates=/tmp/toolstates.json --enable-test-miri

# 32/64-bit MinGW builds.
#
# We are using MinGW with posix threads since LLVM does not compile with
# the win32 threads version due to missing support for C++'s std::thread.
#
# Instead of relying on the MinGW version installed on appveryor we download
# and install one ourselves so we won't be surprised by changes to appveyor's
# build image.
#
# Finally, note that the downloads below are all in the `rust-lang-ci` S3
# bucket, but they cleraly didn't originate there! The downloads originally
# came from the mingw-w64 SourceForge download site. Unfortunately
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
i686-mingw-1:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
SCRIPT: make ci-subset-1
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
MINGW_DIR: mingw32
# FIXME(#59637)
NO_DEBUG_ASSERTIONS: 1
NO_LLVM_ASSERTIONS: 1
i686-mingw-2:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
SCRIPT: make ci-subset-2
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
MINGW_DIR: mingw32
x86_64-mingw-1:
MSYS_BITS: 64
SCRIPT: make ci-subset-1
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
MINGW_DIR: mingw64
# FIXME(#59637)
NO_DEBUG_ASSERTIONS: 1
NO_LLVM_ASSERTIONS: 1
x86_64-mingw-2:
MSYS_BITS: 64
SCRIPT: make ci-subset-2
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
MINGW_DIR: mingw64

# 32/64 bit MSVC and GNU deployment
dist-x86_64-msvc:
RUST_CONFIGURE_ARGS: >
--build=x86_64-pc-windows-msvc
--target=x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
--enable-full-tools
--enable-profiler
SCRIPT: python x.py dist
DIST_REQUIRE_ALL_TOOLS: 1
DEPLOY: 1
dist-i686-msvc:
RUST_CONFIGURE_ARGS: >
--build=i686-pc-windows-msvc
--target=i586-pc-windows-msvc
--enable-full-tools
--enable-profiler
SCRIPT: python x.py dist
DIST_REQUIRE_ALL_TOOLS: 1
DEPLOY: 1
dist-i686-mingw:
MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-full-tools
SCRIPT: python x.py dist
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
MINGW_DIR: mingw32
DIST_REQUIRE_ALL_TOOLS: 1
DEPLOY: 1
dist-x86_64-mingw:
MSYS_BITS: 64
SCRIPT: python x.py dist
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-full-tools
MINGW_URL: https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror
MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
MINGW_DIR: mingw64
DIST_REQUIRE_ALL_TOOLS: 1
DEPLOY: 1

# "alternate" deployment, see .travis.yml for more info
dist-x86_64-msvc-alt:
MSYS_BITS: 64
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
SCRIPT: python x.py dist
DEPLOY_ALT: 1
24 changes: 24 additions & 0 deletions .azure-pipelines/master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
pietroalbini marked this conversation as resolved.
Show resolved Hide resolved
# Azure Pipelines job to publish toolstate. Only triggers on pushes to master.
#

pr: none
trigger:
- master

pool:
vmImage: ubuntu-16.04

steps:
- checkout: self
fetchDepth: 2

- script: |
export MESSAGE_FILE=$(mktemp -t msg.XXXXXX)
. src/ci/docker/x86_64-gnu-tools/repo.sh
# FIXME(pietro): committing is disabled until we switch to Azure Pipelines
# as the source of truth, or until we setup a separate test repo.
#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"
displayName: Publish toolstate
env:
TOOLSTATE_REPO_ACCESS_TOKEN: $(TOOLSTATE_REPO_ACCESS_TOKEN_SECRET)
22 changes: 22 additions & 0 deletions .azure-pipelines/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#
# Azure Pipelines pull request build for Rust
#

trigger: none
pr:
- master # FIXME: really just want any branch, but want an explicit "pr" property set so it's clear

jobs:
- job: Linux
pool:
vmImage: ubuntu-16.04
steps:
- template: steps/run.yml
strategy:
matrix:
x86_64-gnu-llvm-6.0:
RUST_BACKTRACE: 1

# x86_64-gnu-tools: {}
# # if: branch = auto OR (type = pull_request AND commit_message =~ /(?i:^update.*\b(rls|rustfmt|clippy|miri|cargo)\b)/)
# mingw-check: {}
Loading