Skip to content

Commit 05b6c8a

Browse files
committed
ci: Enable offload tests in CI
1 parent 059bf4a commit 05b6c8a

4 files changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
FROM ubuntu:24.04
2+
3+
ARG DEBIAN_FRONTEND=noninteractive
4+
5+
RUN apt-get update && apt-get install -y --no-install-recommends \
6+
g++ \
7+
make \
8+
ninja-build \
9+
file \
10+
curl \
11+
ca-certificates \
12+
python3 \
13+
git \
14+
cmake \
15+
pkg-config \
16+
xz-utils \
17+
zlib1g-dev \
18+
&& rm -rf /var/lib/apt/lists/*
19+
20+
COPY scripts/sccache.sh /scripts/
21+
RUN sh /scripts/sccache.sh
22+
23+
ENV NO_DOWNLOAD_CI_LLVM 1
24+
ENV CODEGEN_BACKENDS llvm
25+
26+
ENV RUST_CONFIGURE_ARGS \
27+
--build=x86_64-unknown-linux-gnu \
28+
--enable-clang \
29+
--enable-lld \
30+
--enable-llvm-offload \
31+
--enable-llvm-link-shared \
32+
--enable-ninja \
33+
--enable-option-checking \
34+
--disable-docs \
35+
--set llvm.download-ci-llvm=false
36+
37+
ENV SCRIPT="../x.py test --stage 2 --no-fail-fast \
38+
tests/codegen-llvm/gpu_offload"

src/ci/github-actions/jobs.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,11 @@ auto:
501501
doc_url: https://rustc-dev-guide.rust-lang.org/tests/autodiff-ci-job.html
502502
<<: *job-linux-4c
503503

504+
- name: optional-x86_64-gnu-offload
505+
continue_on_error: true
506+
doc_url: https://rustc-dev-guide.rust-lang.org/tests/offload-ci-job.html
507+
<<: *job-linux-4c
508+
504509
####################
505510
# macOS Builders #
506511
####################

src/doc/rustc-dev-guide/src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
- [GCC codegen backend](./tests/codegen-backend-tests/cg_gcc.md)
3737
- [Performance testing](./tests/perf.md)
3838
- [Autodiff CI job](./tests/autodiff-ci-job.md)
39+
- [Offload CI job](./tests/offload-ci-job.md)
3940
- [Pre-stabilization CI job for the next solver and polonius alpha](./tests/x86_64-gnu-next-trait-solver-polonius-ci-job.md)
4041
- [Standard library semver breakage test](./tests/stdlib-semver-check.md)
4142
- [Misc info](./tests/misc.md)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Offload CI job
2+
3+
The [`optional-x86_64-gnu-offload`] job provides continuous test coverage for
4+
the experimental `offload` feature.
5+
It is an optional [auto job](./ci.md#auto-builds), so a failure does not prevent a
6+
pull request from being merged.
7+
8+
For more context about the feature, see the [offload tracking issue] and the
9+
[offload internals](../offload/internals.md) chapter.
10+
11+
## What is tested
12+
13+
The job checks:
14+
15+
- host-side LLVM IR generation;
16+
- device-side LLVM IR generation for AMDGPU and NVPTX targets;
17+
- argument lowering in host and device code;
18+
19+
## Running the job
20+
21+
To run the job in a try build, comment on a pull request:
22+
23+
```text
24+
@bors try jobs=optional-x86_64-gnu-offload
25+
```
26+
27+
To run the job locally, run this command from a Rust checkout:
28+
29+
```console
30+
$ cargo run --manifest-path src/ci/citool/Cargo.toml run-local optional-x86_64-gnu-offload
31+
```
32+
33+
See [Testing with Docker](./docker.md) for more information about running CI jobs locally.
34+
35+
## Point of contact
36+
37+
If you have questions or need help with a failure in this job, open a new topic
38+
in the [offload Zulip channel].
39+
40+
[offload Zulip channel]: https://rust-lang.zulipchat.com/#narrow/channel/422870-t-compiler.2Fgpgpu-backend
41+
[offload tracking issue]: https://github.com/rust-lang/rust/issues/131513
42+
[`optional-x86_64-gnu-offload`]: https://github.com/rust-lang/rust/blob/HEAD/src/ci/github-actions/jobs.yml

0 commit comments

Comments
 (0)