rust: ci: add job that runs Rust tools
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>
This commit is contained in:
parent
cab1d0bceb
commit
4e0a11d12f
@ -46,3 +46,27 @@ check-python-tox:
|
|||||||
QEMU_JOB_OPTIONAL: 1
|
QEMU_JOB_OPTIONAL: 1
|
||||||
needs:
|
needs:
|
||||||
job: python-container
|
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
|
||||||
|
@ -155,6 +155,7 @@ ENV PYTHON "/usr/bin/python3"
|
|||||||
RUN dnf install -y wget
|
RUN dnf install -y wget
|
||||||
ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
|
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 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 && \
|
RUN set -eux && \
|
||||||
rustArch='x86_64-unknown-linux-gnu' && \
|
rustArch='x86_64-unknown-linux-gnu' && \
|
||||||
rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
|
rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
|
||||||
@ -165,10 +166,13 @@ RUN set -eux && \
|
|||||||
./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
|
./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
|
||||||
chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
|
chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
|
||||||
/usr/local/cargo/bin/rustup --version && \
|
/usr/local/cargo/bin/rustup --version && \
|
||||||
|
/usr/local/cargo/bin/rustup run nightly cargo --version && \
|
||||||
/usr/local/cargo/bin/rustup run nightly rustc --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)"
|
test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
|
||||||
ENV PATH=$CARGO_HOME/bin:$PATH
|
ENV PATH=$CARGO_HOME/bin:$PATH
|
||||||
RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
|
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)
|
# As a final step configure the user (if env is defined)
|
||||||
ARG USER
|
ARG USER
|
||||||
ARG UID
|
ARG UID
|
||||||
|
@ -121,6 +121,7 @@ fedora_rustup_nightly_extras = [
|
|||||||
"RUN dnf install -y wget\n",
|
"RUN dnf install -y wget\n",
|
||||||
"ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo\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 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",
|
"RUN set -eux && \\\n",
|
||||||
" rustArch='x86_64-unknown-linux-gnu' && \\\n",
|
" rustArch='x86_64-unknown-linux-gnu' && \\\n",
|
||||||
" rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \\\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",
|
" ./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \\\n",
|
||||||
" chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \\\n",
|
" chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \\\n",
|
||||||
" /usr/local/cargo/bin/rustup --version && \\\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",
|
" /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',
|
' test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"\n',
|
||||||
'ENV PATH=$CARGO_HOME/bin:$PATH\n',
|
'ENV PATH=$CARGO_HOME/bin:$PATH\n',
|
||||||
'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
|
'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
|
||||||
|
'RUN $CARGO --list\n',
|
||||||
]
|
]
|
||||||
|
|
||||||
ubuntu2204_bindgen_extras = [
|
ubuntu2204_bindgen_extras = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user