Commit Graph

57 Commits

Author SHA1 Message Date
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
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
Pietro Albini
4af19b0ce9
ci: increase timeout on the auto branch in azure 2019-05-26 18:35:32 +02:00
Pietro Albini
d185feae4f
ci: fix multiple checkouts on azure
We were checking out the rustc repo multiple times on auto macOS, and
that was causing an error on the Azure side since multiple checkouts are
apparently not supported. This removes the extra checkout.
2019-05-26 17:12:13 +02:00
Pietro Albini
2244ca3973
ci: fix invalid syntax in the azure auto.yml 2019-05-24 10:33:14 +02:00
Pietro Albini
24f262f35e
ci: toggle builders 2019-05-22 18:10:44 +02: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
Alex Crichton
beea4f5e4a Execute everything! 2019-05-21 13:32:53 -07:00
Pietro Albini
190d1988e0
ci: switch to xcode 9.3 on azure 2019-05-21 21:25:42 +02:00
Alex Crichton
0f4b546af3 Go back to fewer builders to test on try 2019-05-21 12:09:44 -07:00
Alex Crichton
7b7e172f6d Place timeouts at the job level 2019-05-21 12:06:47 -07:00
Alex Crichton
a2255518c7 Only run Window script on Windows 2019-05-21 11:01:39 -07:00
Alex Crichton
e8f0e70b00 Typos 2019-05-21 10:57:16 -07:00
Alex Crichton
55108b379e Run a full build on try temporarily 2019-05-21 10:45:13 -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
d2304e1e26
ci: increase timeout, take 2 2019-05-21 12:30:10 +02: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
4183f3c41b Configure a few more builders on try temporarily
Make sure there's one dist and one test builder for each of the three
main platforms
2019-05-20 12:29:30 -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
d27cb827c6
ci: add an image for dist-x86_64-linux try on azure 2019-05-20 09:38:11 +02:00
Pietro Albini
f23c1ba74b
ci: use ##vso[task.prependpath] on azure 2019-05-20 09:22:47 +02:00
Pietro Albini
a89e8d2a66
ci: remove yet another outdated comment 2019-05-20 09:21:26 +02:00
Pietro Albini
bf639a1c34
ci: remove outdated comment 2019-05-15 19:39:54 +02:00
Pietro Albini
92bf1e6661
ci: update azure variable groups 2019-05-15 19:39:29 +02:00
Pietro Albini
807b7dd786
ci: disable builders not useful during the evaluation 2019-05-13 10:15:16 +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
5db55e6fe0
ci: disable toolstate commits on azure 2019-05-13 10:15:16 +02:00
Pietro Albini
06bc0da65c
ci: remove test configuration 2019-05-13 10:15:16 +02:00