[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 12/49] rust: ci: add job that runs Rust tools
From: |
Paolo Bonzini |
Subject: |
[PULL 12/49] rust: ci: add job that runs Rust tools |
Date: |
Wed, 11 Dec 2024 17:26:42 +0100 |
Code checks, as well as documentation generation, are not yet tied
to "make check" because they need new version of the Rust toolchain
(even nightly in the case of "rustfmt"). Run them in CI using the
existing nightly-Rust container.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
.gitlab-ci.d/static_checks.yml | 24 +++++++++++++++++++
.../dockerfiles/fedora-rust-nightly.docker | 4 ++++
tests/lcitool/refresh | 4 ++++
3 files changed, 32 insertions(+)
diff --git a/.gitlab-ci.d/static_checks.yml b/.gitlab-ci.d/static_checks.yml
index ad9f426a52f..c0ba4533826 100644
--- a/.gitlab-ci.d/static_checks.yml
+++ b/.gitlab-ci.d/static_checks.yml
@@ -46,3 +46,27 @@ check-python-tox:
QEMU_JOB_OPTIONAL: 1
needs:
job: python-container
+
+check-rust-tools-nightly:
+ extends: .base_job_template
+ stage: test
+ image: $CI_REGISTRY_IMAGE/qemu/fedora-rust-nightly:$QEMU_CI_CONTAINER_TAG
+ script:
+ - source scripts/ci/gitlab-ci-section
+ - section_start test "Running Rust code checks"
+ - cd build
+ - pyvenv/bin/meson devenv -w ../rust ${CARGO-cargo} fmt --check
+ - make clippy
+ - make rustdoc
+ - section_end test
+ variables:
+ GIT_DEPTH: 1
+ allow_failure: true
+ needs:
+ - job: build-system-fedora-rust-nightly
+ artifacts: true
+ artifacts:
+ when: on_success
+ expire_in: 2 days
+ paths:
+ - rust/target/doc
diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker
b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index 9180c8b5222..a8e4fb279a7 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -155,6 +155,7 @@ ENV PYTHON "/usr/bin/python3"
RUN dnf install -y wget
ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
ENV
RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
+ENV
CARGO=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo
RUN set -eux && \
rustArch='x86_64-unknown-linux-gnu' && \
rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d'
&& \
@@ -165,10 +166,13 @@ RUN set -eux && \
./rustup-init -y --no-modify-path --profile default --default-toolchain
nightly --default-host ${rustArch} && \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
/usr/local/cargo/bin/rustup --version && \
+ /usr/local/cargo/bin/rustup run nightly cargo --version && \
/usr/local/cargo/bin/rustup run nightly rustc --version && \
+ test "$CARGO" = "$(/usr/local/cargo/bin/rustup +nightly which cargo)" && \
test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
ENV PATH=$CARGO_HOME/bin:$PATH
RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
+RUN $CARGO --list
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 51012783c0f..6720516b942 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -121,6 +121,7 @@ fedora_rustup_nightly_extras = [
"RUN dnf install -y wget\n",
"ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo\n",
"ENV
RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc\n",
+ "ENV
CARGO=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo\n",
"RUN set -eux && \\\n",
" rustArch='x86_64-unknown-linux-gnu' && \\\n",
"
rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d'
&& \\\n",
@@ -131,10 +132,13 @@ fedora_rustup_nightly_extras = [
" ./rustup-init -y --no-modify-path --profile default --default-toolchain
nightly --default-host ${rustArch} && \\\n",
" chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \\\n",
" /usr/local/cargo/bin/rustup --version && \\\n",
+ " /usr/local/cargo/bin/rustup run nightly cargo --version && \\\n",
" /usr/local/cargo/bin/rustup run nightly rustc --version && \\\n",
+ ' test "$CARGO" = "$(/usr/local/cargo/bin/rustup +nightly which cargo)"
&& \\\n',
' test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which
rustc)"\n',
'ENV PATH=$CARGO_HOME/bin:$PATH\n',
'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
+ 'RUN $CARGO --list\n',
]
ubuntu2204_bindgen_extras = [
--
2.47.1
- [PULL 05/49] rust: build: restrict --cfg generation to only required symbols, (continued)
- [PULL 05/49] rust: build: restrict --cfg generation to only required symbols, Paolo Bonzini, 2024/12/11
- [PULL 03/49] rust: allow using build-root bindings.rs from cargo, Paolo Bonzini, 2024/12/11
- [PULL 06/49] rust: build: generate lint flags from Cargo.toml, Paolo Bonzini, 2024/12/11
- [PULL 07/49] rust: cargo: store desired warning levels in workspace Cargo.toml, Paolo Bonzini, 2024/12/11
- [PULL 09/49] rust: fix a couple style issues from clippy, Paolo Bonzini, 2024/12/11
- [PULL 10/49] rust: build: establish a baseline of lints across all crates, Paolo Bonzini, 2024/12/11
- [PULL 11/49] rust: build: add "make clippy", "make rustfmt", "make rustdoc", Paolo Bonzini, 2024/12/11
- [PULL 13/49] rust: fix doc test syntax, Paolo Bonzini, 2024/12/11
- [PULL 08/49] rust: build: move strict lints handling to rustc_args.py, Paolo Bonzini, 2024/12/11
- [PULL 14/49] rust/qemu-api: Fix fragment-specifiers in define_property macro, Paolo Bonzini, 2024/12/11
- [PULL 12/49] rust: ci: add job that runs Rust tools,
Paolo Bonzini <=
- [PULL 15/49] clock: clear callback on unparent, Paolo Bonzini, 2024/12/11
- [PULL 18/49] kvm: remove unnecessary #ifdef, Paolo Bonzini, 2024/12/11
- [PULL 16/49] clock: treat outputs and inputs the same in NamedClockList, Paolo Bonzini, 2024/12/11
- [PULL 17/49] clock: inline most of qdev_init_clocklist, Paolo Bonzini, 2024/12/11
- [PULL 20/49] hw/block: Replace type_register() with type_register_static(), Paolo Bonzini, 2024/12/11
- [PULL 19/49] arm: Replace type_register() with type_register_static(), Paolo Bonzini, 2024/12/11
- [PULL 21/49] hw/net: Replace type_register() with type_register_static(), Paolo Bonzini, 2024/12/11
- [PULL 22/49] ppc: Replace type_register() with type_register_static(), Paolo Bonzini, 2024/12/11
- [PULL 24/49] hw/scsi: Replace type_register() with type_register_static(), Paolo Bonzini, 2024/12/11