Commit Graph

47 Commits

Author SHA1 Message Date
Mark Rousskov df725c28d6 Ensure that checkout is with \n line endings
During installation of mingw, at least, the git directories change, so
we need to reset the core.autocrlf config to false.

Once we finish checking out submodules, check that the line endings are
\n and not \r\n.
2019-07-10 09:56:47 -04:00
Alex Crichton 0efc7e3898 ci: Configure $CI_JOB_NAME correctly
Looks like some env vars were tweaked on Azure's side of things, so
update how we configure `CI_JOB_NAME`.
2019-07-09 09:09:13 -07:00
Pietro Albini 239a404cae
ci: explicitly disable CRLF conversion on Windows
The Azure image enables CRLF conversion on Windows builders, but that
caused regressions both in our test suite (the miri test suite broke)
and in the ecosystem, since we started shipping install scripts with
CRLF endings instead of the old LF. The Godbolt Compiler Explorer is one
such case of breakage.

This adds a step to the build explicitly disabling the conversion before
the repository is checked out.
2019-07-01 21:57:08 +02:00
Pyry Kontio 9d99ae520b swig@3 is keg-only and not linked by default so add linking so that the build scripts can find it 2019-06-16 01:51:32 +09:00
Pyry Kontio d6e410b320 Fix rust-lldb wrapper scripts. 2019-06-16 01:51:32 +09:00
Alex Crichton 521edee2e5 ci: Enable toolstate tracking on Azure
Currently just run it through its paces but don't actually push to
official locations. Instead let's just push to a separate fork (mine) as
well as open issues in a separate fork (mine). Make sure that people
aren't pinged for these issues as well!

This should hopefully ensure that everything is working on Azure and
give us a chance to work through any issues that come up.
2019-06-13 07:09:51 -07:00
Pietro Albini 2cd516c1c3
ci: fix ci stats upload condition
The condition I suggested in #61632 was not correct and it errors out
while evaluating. This fixes the condition.

Example of a failure:
https://dev.azure.com/rust-lang/rust/_build/results?buildId=543
2019-06-12 14:21:59 +02:00
Mazdak Farrokhzad 6933034a40
Rollup merge of #61632 - alexcrichton:azure-pipelines-cpu, r=pietroalbini
ci: Collect CPU usage statistics on Azure

This commit adds a script which we'll execute on Azure Pipelines which
is intended to run in the background and passively collect CPU usage
statistics for our builders. The intention here is that we can use this
information over time to diagnose issues with builders, see where we can
optimize our build, fix parallelism issues, etc. This might not end up
being too useful in the long run but it's data we've wanted to collect
for quite some time now, so here's a stab at it!

Comments about how this is intended to work can be found in the python
script used here to collect CPU usage statistics.

Closes #48828
2019-06-12 04:22:48 +02:00
Alex Crichton f2c37a55a4 ci: Collect CPU usage statistics on Azure
This commit adds a script which we'll execute on Azure Pipelines which
is intended to run in the background and passively collect CPU usage
statistics for our builders. The intention here is that we can use this
information over time to diagnose issues with builders, see where we can
optimize our build, fix parallelism issues, etc. This might not end up
being too useful in the long run but it's data we've wanted to collect
for quite some time now, so here's a stab at it!

Comments about how this is intended to work can be found in the python
script used here to collect CPU usage statistics.

Closes #48828
2019-06-11 06:56:30 -07:00
Wesley Wiser 41e976baa9 Azure: retry failed awscli installs
Fixes #61604
2019-06-09 21:28:47 -04:00
Alex Crichton fb3bd58e4f azure: Uninstall previous rustc from builders if any
Looks like Azure has updated images recently to install Rust by default,
but that can interfere with our own compiler (for example Cargo's test
suite we think) so be sure to uninstall it before proceeding.
2019-06-05 08:32:40 -07:00
Alex Crichton 0b88e5a87e azure: Make sure docker directory exists
Looks like the Azure image changed recently so let's account for that!
2019-06-05 07:34:48 -07:00
Pietro Albini 80df64b7d4
ci: retry s3 upload on azure if it fails 2019-06-03 11:54:36 +02:00
Pietro Albini 90d4ef3af2
Rollup merge of #61304 - lzybkr:iwr_progress, r=alexcrichton
Speed up Azure CI installing Windows dependencies

There is known issue where PowerShell is unreasonably slow downloading
files due to an issue with rendering the progress bar, see this [issue](https://github.com/PowerShell/PowerShell/issues/2138)

That issue is fixed in PowerShell Core (available in Azure Pipelines as
pwsh.exe) but it can also be worked around by setting:

    $ProgressPreference = 'SilentlyContinue'

I measured downloading LLVM and it took about 220s before, 5s after, so the improvement is significant.
2019-05-31 13:33:54 +02:00
bors 3ade426ede Auto merge of #61353 - alexcrichton:less-tools, r=pietroalbini
ci: Favor SCRIPT instead of RUST_CHECK_TARGET

Since #61212 we've been timing out on OSX, and this looks to be because
we're building tools like Cargo and the RLS twice instead of once. This
turns out to be a slight bug in our configuration. CI builders using the
`RUST_CHECK_TARGET` directive actually execute `make all` just before
their acual target. In `make all` we're building a stage2 cargo, and
then in `make dist` we're building a stage1 cargo.

Other builders use `SCRIPT` which provides explicit control over what
`x.py` script, for example, is used to execute the build. This moves
almost all targets to using `SCRIPT` to ensure that we're explicitly
specifying what's being built where. Additionally this updates the logic
of `RUST_CHECK_TARGET` to remove the pre-flight tidy as well as the
pre-flight `make all`. The system LLVM builder (run on PRs) now
explicitly runs tidy first and then runs the rest of the test suite.
2019-05-30 19:52:11 +00:00
Jason Shirk 6c534c316f
Merge branch 'master' into iwr_progress 2019-05-30 11:00:21 -07:00
Alex Crichton ebdf42e965 ci: Favor SCRIPT instead of RUST_CHECK_TARGET
Since #61212 we've been timing out on OSX, and this looks to be because
we're building tools like Cargo and the RLS twice instead of once. This
turns out to be a slight bug in our configuration. CI builders using the
`RUST_CHECK_TARGET` directive actually execute `make all` just before
their acual target. In `make all` we're building a stage2 cargo, and
then in `make dist` we're building a stage1 cargo.

Other builders use `SCRIPT` which provides explicit control over what
`x.py` script, for example, is used to execute the build. This moves
almost all targets to using `SCRIPT` to ensure that we're explicitly
specifying what's being built where. Additionally this updates the logic
of `RUST_CHECK_TARGET` to remove the pre-flight tidy as well as the
pre-flight `make all`. The system LLVM builder (run on PRs) now
explicitly runs tidy first and then runs the rest of the test suite.
2019-05-30 07:28:56 -07:00
Alex Crichton 3eda151086 Update all s3 URLs used on CI with subdomains
Ensure that they're all forwards-compatible with AWS updates happening
next year by ensuring the bucket name shows up in the domain name.

Closes #61168
2019-05-29 07:03:50 -07:00
Jason Shirk 642e8d4434 Speed up Azure CI installing Windows dependencies
There is known issue where PowerShell is unreasonably slow downloading
files due to an issue with rendering the progress bar, see:

https://github.com/PowerShell/PowerShell/issues/2138

That issue is fixed in PowerShell Core (available in Azure Pipelines as
pwsh.exe) but it can also be worked around by setting:

    $ProgressPreference = 'SilentlyContinue'
2019-05-28 22:57:12 -07:00
Alex Crichton a8ac80b7bc Final cleanups
* Clean up the `install-windows-build-deps.yml` file and add some more
  comments where appropriate.

* Add some comments to `run.yml`

* Don't fast path the `rustfmt` submodule, but we'll take care of that
  later if necessary.
2019-05-22 07:09:25 -07:00
Alex Crichton e0ed2a3f60 Correct the upload_dir in script 2019-05-21 15:55:26 -07:00
Alex Crichton 78965f49c8 Use xcode 9.3 on all osx builders 2019-05-21 15:14:20 -07:00
Pietro Albini 190d1988e0
ci: switch to xcode 9.3 on azure 2019-05-21 21:25:42 +02:00
Alex Crichton a2255518c7 Only run Window script on Windows 2019-05-21 11:01:39 -07:00
Alex Crichton ebdc36eb8e Re-enable hack for Windows builds to see if it works 2019-05-21 10:39:37 -07:00
Alex Crichton a83250dcfa Update upload logic to upload right directory 2019-05-21 10:38:05 -07:00
Alex Crichton 571366f71b Attempt to enable IPv6 for Linux 2019-05-21 10:33:19 -07:00
Alex Crichton 0e5f02f902 Fix typo in key configuration 2019-05-21 10:28:56 -07:00
Pietro Albini 1daab471ce
ci: temp increase of the timeout to 10 hours
Let's see how long a full build takes.
2019-05-21 10:27:41 +02:00
Alex Crichton 9843a79496 Finalize AWS install 2019-05-20 14:37:24 -07:00
Alex Crichton 12f370156d Only execute conditional steps on success
Make sure `succeeded()` is in all the conditionals
2019-05-20 14:34:37 -07:00
Alex Crichton 9b8af0608f Manually install AWS CLI 2019-05-20 14:19:56 -07:00
Alex Crichton fa8d3b59bd Fix a typo in the run script 2019-05-20 12:46:20 -07:00
Alex Crichton 804ec5faab Execute `docker/run.sh` on Linux 2019-05-20 12:43:29 -07:00
Alex Crichton 7b266ff181 Fix a typo in clang install 2019-05-20 12:38:17 -07:00
Alex Crichton 528cce96cf Job name config works for all platforms 2019-05-20 12:37:18 -07:00
Alex Crichton 91b1655528 Remove a now stray file 2019-05-20 12:35:21 -07:00
Alex Crichton 1be9fe6a44 Refactor azure pipelines configuration
This commit is intended to go through and review/refactor the azure
pipelines configuration we have. The major changes are:

* The separate `{windows,macos,linux}.yml` files are now all merged into
  one `run.yml`. This allows a shared "master flow" for all platforms
  with divergence only where necessary.

* Some install steps have been separated as `install-*.yml` scripts,
  where each script internally matches on the appropriate OS and then
  delegates accordingly.

* Some various bits and pieces of cruft have been removed which were
  artifacts of Travis's setup or similar.
2019-05-20 12:24:58 -07:00
Alex Crichton 79d28c203f Don't bother with `stamp` utility
That was just used because Travis doesn't have time stamps on all log
lines, but Azure does, so no need to add our own.
2019-05-20 11:27:18 -07:00
Pietro Albini 9f37b3a4c2
ci: deploy artifacts on azure 2019-05-20 10:11:09 +02:00
Pietro Albini f23c1ba74b
ci: use ##vso[task.prependpath] on azure 2019-05-20 09:22:47 +02:00
Pietro Albini bf639a1c34
ci: remove outdated comment 2019-05-15 19:39:54 +02:00
Pietro Albini 694ea7646a
ci: remove links to johnterickson repo 2019-05-13 10:15:16 +02:00
Pietro Albini da949780f0
ci: remove trailing whitespaces from azure config 2019-05-13 10:15:16 +02:00
Pietro Albini 869ddd8d00
ci: still use aws for caches 2019-05-13 10:07:50 +02:00
Pietro Albini abd4b3a83c
ci: remove travis ipv6 docker hack on azure 2019-05-10 10:04:34 +02:00
John Erickson 699376ada0
Add Azure Pipelines 2019-05-10 09:46:28 +02:00