split better
This commit is contained in:
parent
e67e9b448e
commit
4f0e7816cd
5 changed files with 105 additions and 9 deletions
|
|
@ -59,6 +59,6 @@ COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
|||
|
||||
RUN /scripts/build-gccjit.sh /scripts
|
||||
|
||||
COPY scripts/x86_64-gnu-llvm.sh /tmp/script.sh
|
||||
ARG SCRIPT_ARG
|
||||
ENV SCRIPT="/tmp/script.sh && ${SCRIPT_ARG}"
|
||||
COPY scripts/{SCRIPT_ARG} /tmp/script.sh
|
||||
ENV SCRIPT="/tmp/script.sh"
|
||||
|
|
|
|||
|
|
@ -59,6 +59,6 @@ COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
|||
|
||||
RUN /scripts/build-gccjit.sh /scripts
|
||||
|
||||
COPY scripts/x86_64-gnu-llvm.sh /tmp/script.sh
|
||||
ARG SCRIPT_ARG
|
||||
ENV SCRIPT="/tmp/script.sh && ${SCRIPT_ARG}"
|
||||
COPY scripts/{SCRIPT_ARG} /tmp/script.sh
|
||||
ENV SCRIPT="/tmp/script.sh"
|
||||
|
|
|
|||
36
src/ci/docker/scripts/x86_64-gnu-llvm1.sh
Executable file
36
src/ci/docker/scripts/x86_64-gnu-llvm1.sh
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/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
|
||||
|
||||
# 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 tests
|
||||
--skip coverage-map
|
||||
--skip coverage-run
|
||||
--skip library
|
||||
--skip tidyselftest
|
||||
fi
|
||||
|
||||
../x.py --stage 2 test
|
||||
--skip tests
|
||||
--skip coverage-map
|
||||
--skip coverage-run
|
||||
--skip library
|
||||
--skip tidyselftest
|
||||
60
src/ci/docker/scripts/x86_64-gnu-llvm2.sh
Executable file
60
src/ci/docker/scripts/x86_64-gnu-llvm2.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/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
|
||||
|
||||
# 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 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.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
|
||||
|
||||
../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
|
||||
|
|
@ -117,7 +117,7 @@ pr:
|
|||
ENABLE_GCC_CODEGEN: "1"
|
||||
# We are adding (temporarily) a dummy commit on the compiler
|
||||
READ_ONLY_SRC: "0"
|
||||
DOCKER_SCRIPT: python3 ../x.py --stage 2 test --skip src/tools/tidy
|
||||
DOCKER_SCRIPT: x86_64-gnu-llvm.sh
|
||||
<<: *job-linux-16c
|
||||
- image: x86_64-gnu-tools
|
||||
<<: *job-linux-16c
|
||||
|
|
@ -319,7 +319,7 @@ auto:
|
|||
env:
|
||||
RUST_BACKTRACE: 1
|
||||
IMAGE: x86_64-gnu-llvm-19
|
||||
<<: *stage_2_test_set1
|
||||
DOCKER_SCRIPT: x86_64-gnu-llvm1.sh
|
||||
<<: *job-linux-4c
|
||||
|
||||
# Skip tests that run in x86_64-gnu-llvm-19-2
|
||||
|
|
@ -327,7 +327,7 @@ auto:
|
|||
env:
|
||||
RUST_BACKTRACE: 1
|
||||
IMAGE: x86_64-gnu-llvm-19
|
||||
<<: *stage_2_test_set2
|
||||
DOCKER_SCRIPT: x86_64-gnu-llvm2.sh
|
||||
<<: *job-linux-4c
|
||||
|
||||
# The x86_64-gnu-llvm-18 job is split into multiple jobs to run tests in parallel.
|
||||
|
|
@ -337,7 +337,7 @@ auto:
|
|||
RUST_BACKTRACE: 1
|
||||
READ_ONLY_SRC: "0"
|
||||
IMAGE: x86_64-gnu-llvm-18
|
||||
<<: *stage_2_test_set1
|
||||
DOCKER_SCRIPT: x86_64-gnu-llvm1.sh
|
||||
<<: *job-linux-4c
|
||||
|
||||
# Skip tests that run in x86_64-gnu-llvm-18-2
|
||||
|
|
@ -346,7 +346,7 @@ auto:
|
|||
RUST_BACKTRACE: 1
|
||||
READ_ONLY_SRC: "0"
|
||||
IMAGE: x86_64-gnu-llvm-18
|
||||
<<: *stage_2_test_set2
|
||||
DOCKER_SCRIPT: x86_64-gnu-llvm2.sh
|
||||
<<: *job-linux-4c
|
||||
|
||||
- image: x86_64-gnu-nopt
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue