Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions src/bootstrap/src/core/build_steps/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,8 @@ impl Step for RustAnalyzer {
// specify `--workspace`.
cargo.arg("--workspace");
cargo.arg("--exclude=xtask");
// cargo.arg("-p");
// cargo.arg("hir-def");

if build_compiler.stage == 0 {
// This builds a proc macro against the bootstrap libproc_macro, which is not ABI
Expand Down
6 changes: 3 additions & 3 deletions src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \

# Install powershell (universal package) so we can test x.ps1 on Linux
# FIXME: need a "universal" version that supports libicu74, but for now it still works to ignore that dep.
RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
dpkg --ignore-depends=libicu72 -i powershell.deb && \
rm -f powershell.deb
# RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
# dpkg --ignore-depends=libicu72 -i powershell.deb && \
# rm -f powershell.deb

COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
Expand Down
17 changes: 6 additions & 11 deletions src/ci/docker/scripts/stage_2_test_set2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,10 @@ set -ex
# When this job partition is run as part of PR CI, skip tidy to allow revealing more failures. The
# dedicated `tidy` job failing won't block other PR CI jobs from completing, and so tidy failures
# shouldn't inhibit revealing other failures in PR CI jobs.
if [ "$PR_CI_JOB" == "1" ]; then
echo "PR_CI_JOB set; skipping tidy"
SKIP_TIDY="--skip tidy"
fi
# if [ "$PR_CI_JOB" == "1" ]; then
# echo "PR_CI_JOB set; skipping tidy"
# SKIP_TIDY="--skip tidy"
# fi

../x.py --stage 2 test \
${SKIP_TIDY:+$SKIP_TIDY} \
--skip tests \
--skip coverage-map \
--skip coverage-run \
--skip library \
--skip tidyselftest
../x.py --stage 2 test src/tools/rust-analyzer || \
gdb -batch -ex "bt" /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/release/deps/hir_def-* /checkout/obj/eric-core
79 changes: 53 additions & 26 deletions src/ci/github-actions/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,41 +111,68 @@ jobs:
# When overridden, `citool` will check for equivalence between the PR and CI job
# of the same name modulo `continue_on_error` and `env`.
pr:
- name: pr-check-1
<<: *job-linux-4c
- name: pr-check-2
<<: *job-linux-4c
- name: tidy
continue_on_error: true
free_disk: false
- name: x86_64-gnu-llvm-21-1
env:
# This submodule is expensive to checkout, and it should not be needed for
# tidy. This speeds up the PR CI job by ~1 minute.
SKIP_SUBMODULES: src/gcc
RUST_BACKTRACE: 1
IMAGE: x86_64-gnu-llvm-21
DOCKER_SCRIPT: stage_2_test_set2.sh
<<: *job-linux-4c
- name: x86_64-gnu-llvm-21
- name: x86_64-gnu-llvm-21-2
env:
ENABLE_GCC_CODEGEN: "1"
DOCKER_SCRIPT: x86_64-gnu-llvm.sh
RUST_BACKTRACE: 1
IMAGE: x86_64-gnu-llvm-21
DOCKER_SCRIPT: stage_2_test_set2.sh
<<: *job-linux-4c
- name: aarch64-gnu-llvm-21-1
env:
IMAGE: aarch64-gnu-llvm-21
DOCKER_SCRIPT: stage_2_test_set1.sh
<<: *job-aarch64-linux
- name: aarch64-gnu-llvm-21-2
- name: x86_64-gnu-llvm-21-3
env:
IMAGE: aarch64-gnu-llvm-21
RUST_BACKTRACE: 1
IMAGE: x86_64-gnu-llvm-21
DOCKER_SCRIPT: stage_2_test_set2.sh
<<: *job-aarch64-linux
- name: x86_64-gnu-tools
<<: *job-linux-4c
- name: x86_64-gnu-miri
<<: *job-linux-4c
- name: x86_64-gnu-gcc
doc_url: https://rustc-dev-guide.rust-lang.org/tests/codegen-backend-tests/cg_gcc.html
- name: x86_64-gnu-llvm-21-4
env:
RUST_BACKTRACE: 1
IMAGE: x86_64-gnu-llvm-21
DOCKER_SCRIPT: stage_2_test_set2.sh
<<: *job-linux-4c



# - name: pr-check-1
# <<: *job-linux-4c
# - name: pr-check-2
# <<: *job-linux-4c
# - name: tidy
# continue_on_error: true
# free_disk: false
# env:
# # This submodule is expensive to checkout, and it should not be needed for
# # tidy. This speeds up the PR CI job by ~1 minute.
# SKIP_SUBMODULES: src/gcc
# <<: *job-linux-4c
# - name: x86_64-gnu-llvm-21
# env:
# ENABLE_GCC_CODEGEN: "1"
# DOCKER_SCRIPT: x86_64-gnu-llvm.sh
# <<: *job-linux-4c
# - name: aarch64-gnu-llvm-21-1
# env:
# IMAGE: aarch64-gnu-llvm-21
# DOCKER_SCRIPT: stage_2_test_set1.sh
# <<: *job-aarch64-linux
# - name: aarch64-gnu-llvm-21-2
# env:
# IMAGE: aarch64-gnu-llvm-21
# DOCKER_SCRIPT: stage_2_test_set2.sh
# <<: *job-aarch64-linux
# - name: x86_64-gnu-tools
# <<: *job-linux-4c
# - name: x86_64-gnu-miri
# <<: *job-linux-4c
# - name: x86_64-gnu-gcc
# doc_url: https://rustc-dev-guide.rust-lang.org/tests/codegen-backend-tests/cg_gcc.html
# <<: *job-linux-4c

# Jobs that run when you perform a try build (@bors try)
# These jobs automatically inherit envs.try, to avoid repeating
# it in each job definition.
Expand Down
10 changes: 7 additions & 3 deletions src/ci/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ if [ -n "$CI_JOB_DOC_URL" ]; then
echo "[CI_JOB_DOC_URL=$CI_JOB_DOC_URL]"
fi

sysctl -w kernel.core_pattern=/checkout/obj/eric-core

if [ "$NO_CHANGE_USER" = "" ]; then
if [ "$LOCAL_USER_ID" != "" ]; then
id -u user &>/dev/null || useradd --shell /bin/bash -u $LOCAL_USER_ID -o -c "" -m user
Expand All @@ -33,6 +35,7 @@ fi
if [ -f /proc/sys/kernel/core_pattern ]; then
ulimit -c unlimited
fi
cat /proc/sys/kernel/core_pattern

# There was a bad interaction between "old" 32-bit binaries on current 64-bit
# kernels with selinux enabled, where ASLR mmap would sometimes choose a low
Expand All @@ -58,14 +61,15 @@ if [ "$FORCE_CI_RUSTC" == "" ]; then
DISABLE_CI_RUSTC_IF_INCOMPATIBLE=1
fi

RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set build.print-step-timings --enable-verbose-tests"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set build.metrics"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-verbose-tests"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-verbose-configure"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-sccache"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --disable-manage-submodules"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-locked-deps"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-cargo-native-static"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set rust.codegen-units-std=1"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set rust.llvm-bitcode-linker=false"
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --tools=cargo,rustdoc,rust-analyzer,rust-analyzer-proc-macro-srv,analysis"
# rust-lang/promote-release will recompress CI artifacts, and while we care
# about the per-commit artifact sizes, it's not as important that they're
# highly compressed as it is that the process is fast. Best compression
Expand Down Expand Up @@ -166,7 +170,7 @@ else
CODEGEN_BACKENDS="${CODEGEN_BACKENDS:-llvm,cranelift,gcc}"
else
# Test the Cranelift backend in CI. Bootstrap knows which targets to run tests on.
CODEGEN_BACKENDS="${CODEGEN_BACKENDS:-llvm,cranelift}"
CODEGEN_BACKENDS="${CODEGEN_BACKENDS:-llvm}"
fi
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set rust.codegen-backends=$CODEGEN_BACKENDS"

Expand Down