-
Notifications
You must be signed in to change notification settings - Fork 13k
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
CI: use free runners for x86_64-gnu-llvm jobs #134124
Changes from 18 commits
577b5f3
e67e9b4
4f0e781
bb88d7a
84ba41d
abd8352
a8bc3cf
d74de1f
754fb24
9ed728d
eec9bcf
fee220a
1f38572
7ce2944
aa0fd46
a1abbaa
2bf1cec
c2f4550
a67a71d
4fa9078
ac078a4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#!/bin/bash | ||
|
||
set -ex | ||
|
||
if [ "$READ_ONLY_SRC" = "0" ]; then | ||
# `core::builder::tests::ci_rustc_if_unchanged_logic` bootstrap test ensures that | ||
# "download-rustc=if-unchanged" logic don't use CI rustc while there are changes on | ||
# compiler and/or library. Here we are adding a dummy commit on compiler and running | ||
# that test to make sure we never download CI rustc with a change on the compiler tree. | ||
echo "" >> ../compiler/rustc/src/main.rs | ||
git config --global user.email "dummy@dummy.com" | ||
git config --global user.name "dummy" | ||
git add ../compiler/rustc/src/main.rs | ||
git commit -m "test commit for rust.download-rustc=if-unchanged logic" | ||
DISABLE_CI_RUSTC_IF_INCOMPATIBLE=0 ../x.py test bootstrap \ | ||
-- core::builder::tests::ci_rustc_if_unchanged_logic | ||
# Revert the dummy commit | ||
git reset --hard HEAD~1 | ||
fi | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. extracted from |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,42 +2,7 @@ | |
|
||
set -ex | ||
|
||
if [ "$READ_ONLY_SRC" = "0" ]; then | ||
# `core::builder::tests::ci_rustc_if_unchanged_logic` bootstrap test ensures that | ||
# "download-rustc=if-unchanged" logic don't use CI rustc while there are changes on | ||
# compiler and/or library. Here we are adding a dummy commit on compiler and running | ||
# that test to make sure we never download CI rustc with a change on the compiler tree. | ||
echo "" >> ../compiler/rustc/src/main.rs | ||
git config --global user.email "dummy@dummy.com" | ||
git config --global user.name "dummy" | ||
git add ../compiler/rustc/src/main.rs | ||
git commit -m "test commit for rust.download-rustc=if-unchanged logic" | ||
DISABLE_CI_RUSTC_IF_INCOMPATIBLE=0 ../x.py test bootstrap \ | ||
-- core::builder::tests::ci_rustc_if_unchanged_logic | ||
# Revert the dummy commit | ||
git reset --hard HEAD~1 | ||
fi | ||
|
||
# Only run the stage 1 tests on merges, not on PR CI jobs. | ||
if [[ -z "${PR_CI_JOB}" ]]; then | ||
../x.py --stage 1 test --skip src/tools/tidy | ||
|
||
# Run the `mir-opt` tests again but this time for a 32-bit target. | ||
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have | ||
# both 32-bit and 64-bit outputs updated by the PR author, before | ||
# the PR is approved and tested for merging. | ||
# It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`, | ||
# despite having different output on 32-bit vs 64-bit targets. | ||
../x.py --stage 1 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu | ||
|
||
# Run `ui-fulldeps` in `--stage=1`, which actually uses the stage0 | ||
# compiler, and is sensitive to the addition of new flags. | ||
../x.py --stage 1 test tests/ui-fulldeps | ||
|
||
# Rebuild the stdlib with the size optimizations enabled and run tests again. | ||
RUSTFLAGS_NOT_BOOTSTRAP="--cfg feature=\"optimize_for_size\"" ../x.py --stage 1 test \ | ||
library/std library/alloc library/core | ||
fi | ||
./add_dummy_commit.sh | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I removed this because this script only runs in PR |
||
# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux. | ||
../x.py --stage 2 test --skip src/tools/tidy | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#!/bin/bash | ||
|
||
set -ex | ||
|
||
./add_dummy_commit.sh | ||
|
||
../x.py --stage 2 test \ | ||
--skip tests \ | ||
--skip coverage-map \ | ||
--skip coverage-run \ | ||
--skip library \ | ||
--skip tidyselftest | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These are duplicated from the CI sets. One way to de-duplicate them might be to move the CI anchors to scripts. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure if the scripts could encompass everything, e.g. the Windows runners don't use bash scripts within Docker, some runners still use a Makefile.. Let's leave it like this for now. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/bin/bash | ||
|
||
set -ex | ||
|
||
./add_dummy_commit.sh | ||
|
||
##### Test stage 2 ##### | ||
|
||
../x.py --stage 2 test \ | ||
--skip compiler \ | ||
--skip src | ||
|
||
# Run the `mir-opt` tests again but this time for a 32-bit target. | ||
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have | ||
# both 32-bit and 64-bit outputs updated by the PR author, before | ||
# the PR is approved and tested for merging. | ||
# It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`, | ||
# despite having different output on 32-bit vs 64-bit targets. | ||
../x --stage 2 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu | ||
|
||
# Run the UI test suite again, but in `--pass=check` mode | ||
# | ||
# This is intended to make sure that both `--pass=check` continues to | ||
# work. | ||
../x.ps1 --stage 2 test tests/ui --pass=check --host='' --target=i686-unknown-linux-gnu |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/bin/bash | ||
|
||
set -ex | ||
|
||
./add_dummy_commit.sh | ||
|
||
##### Test stage 1 ##### | ||
|
||
../x.py --stage 1 test --skip src/tools/tidy | ||
|
||
# Run the `mir-opt` tests again but this time for a 32-bit target. | ||
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have | ||
# both 32-bit and 64-bit outputs updated by the PR author, before | ||
# the PR is approved and tested for merging. | ||
# It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`, | ||
# despite having different output on 32-bit vs 64-bit targets. | ||
../x.py --stage 1 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu | ||
|
||
# Run `ui-fulldeps` in `--stage=1`, which actually uses the stage0 | ||
# compiler, and is sensitive to the addition of new flags. | ||
../x.py --stage 1 test tests/ui-fulldeps | ||
|
||
# Rebuild the stdlib with the size optimizations enabled and run tests again. | ||
RUSTFLAGS_NOT_BOOTSTRAP="--cfg feature=\"optimize_for_size\"" ../x.py --stage 1 test \ | ||
library/std library/alloc library/core |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't only copy the right file because this line wants the exact path (I tried to use ${SCRIPT_ARG} and it failed.