Hello,
I have been attempting to add some rust checks to the flashrom gerrit test script. I have 2 CLs and a request to change the jenkins job:
https://qa.coreboot.org/view/Flashrom/job/flashrom_gerrit
This patch installs 'cargo' to the jenkins docker image:
https://review.coreboot.org/c/coreboot/+/72001
This adds something like 1Gb to the docker image.
This patch adds the rust checks to the flashrom jenkins test_build script:
https://review.coreboot.org/c/flashrom/+/69770
However that script runs with no network, so something like this needs to be added to the jenkins run script:
find -name Cargo.toml -execdir cargo fetch ';'
https://doc.rust-lang.org/cargo/commands/cargo-fetch.html
cargo fetch creates a Cargo.lock file, or updates one if it exists and is no longer compatible with Cargo.toml (the checked in dependency declarations). The lock file specifies which versions of the dependencies to use.
Our jenkins setup will delete the Cargo.lock file every time during `git clean`, I would like to check in the Cargo.lock file to avoid this problem.
https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-v...
I was only able to test my changes inside a pre-built image from dockerhub, as the TOT `make coreboot-jenkins-node` was not working for me. Here is exactly what I did in the docker image:
apt update; apt install cargo rustfmt rust-clippy su coreboot cd /home/coreboot/node-root/workspace/ git clone https://review.coreboot.org/flashrom git fetch https://review.coreboot.org/flashrom refs/changes/70/69770/3 && git checkout FETCH_HEAD mkdir /home/coreboot/.cargo/ git ls-files | grep Cargo.toml | xargs -r -L1 sh -xc "cargo fetch --manifest-path $0" encapsulate "$PWD|/tmp|/home/coreboot/.ccache|/home/coreboot/.cargo/" ./test_build.sh
Thanks