Skip to content

Integrate [rust-toolchain] image

Arvid Jakobsson requested to merge arvid@add-rust-toolchain into master

Integrates, builds and pushes the rust-toolchain of https://gitlab.nomadic-labs.com/nomadic-labs/iac/docker/rust-toolchain/-/blob/42eb2aa2d44b129e41a5a474f47c73a0694b7df3/Dockerfile into opam-repos.

I've tried to integrate the build of this image in the existing script structure. However,

  • the rust-toolchain image does not come in an amd64/arm64 flavour
  • if it can be avoided, i prefer not building this image in the existing build-arm64/amd64 as they're very slow already

For this reason, I've added the concept of "image families". Basically, there are two families: runtime and rust-toolchain. All the previous images are in the runtime family and the new rust-toolchain image is in the rust-toolchain family (makes sense right?).

Scripts are now mostly parametrized by the family, which defaults to the "pseudo"-family all that includes all images. This means that locally, you can now do e.g.

./scripts/create_docker_image.sh tezos/opam-repository '' amd64 <IMAGE_FAMILY>

with

  • <IMAGE_FAMLY> as runtime to build all the images in the runtime family.
  • <IMAGE_FAMLY> as rust-toolchain to build all the images in the rust-toolchain family.
  • <IMAGE_FAMLY> as rust-toolchain as all or absent to build all the images.

tezos/tezos companion: tezos!10548 (merged)

Todo

Consequences

  • rust-toolchain and opam-repo now update in lock step (can't update on without the other)
  • changing the rust dependencies induces a 40 minute wait for the runtime- images to build

We could make the CI faster in cases where only rust dependencies are updated through docker caching. However, modifying dependencies happens rarely anyhow.

Edited by Arvid Jakobsson

Merge request reports