From d44045d5b57ddbdad287fcdcb2a02bb3a7226f73 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Wed, 23 Jul 2025 12:29:36 +0200 Subject: [PATCH 1/2] images: use a fix version of opam push instead of edge from alpine --- images/ci/Dockerfile.monitoring | 1 - images/ci/Dockerfile.prebuild | 12 ++++++++---- images/ci/scripts/install_opam_static.sh | 1 + images/create_ci_images.sh | 1 + scripts/version.sh | 4 +++- 5 files changed, 13 insertions(+), 6 deletions(-) create mode 120000 images/ci/scripts/install_opam_static.sh diff --git a/images/ci/Dockerfile.monitoring b/images/ci/Dockerfile.monitoring index 987bc2d8ada1..63d5a21e3dd6 100644 --- a/images/ci/Dockerfile.monitoring +++ b/images/ci/Dockerfile.monitoring @@ -14,7 +14,6 @@ USER root # hadolint ignore=DL3018,DL3019 RUN apk update && apk add --no-cache npm curl jq - # Set NPM registry # NPM_REGISTRY_DOMAIN and NPM_REGISTRY are set in the GitLab CI/CD ARG NPM_REGISTRY_DOMAIN diff --git a/images/ci/Dockerfile.prebuild b/images/ci/Dockerfile.prebuild index f1739690bb0e..0d7896d64f1d 100644 --- a/images/ci/Dockerfile.prebuild +++ b/images/ci/Dockerfile.prebuild @@ -30,6 +30,7 @@ COPY --chown=tezos:tezos .gitconfig /home/tezos/ # Rust installer script COPY --chown=tezos:tezos install-rust.sh /tmp/ +COPY --chown=tezos:tezos scripts/install_opam_static.sh /tmp/ # setup kisscache COPY --chown=tezos:tezos scripts/kiss-fetch.sh scripts/kiss-logs.sh /tmp/ @@ -77,15 +78,18 @@ RUN apk update \ protobuf \ protobuf-dev \ sqlite-static \ - sqlite-dev \ - # Opam from Edge is Opam 2.2 - && apk add --no-cache \ - opam --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community + sqlite-dev # Install Cargo and Rust (more information in the shell script) RUN ./install-rust.sh \ && rm -rf /tmp/install-rust.sh +ARG OPAM_VERSION +ENV OPAM_VERSION=$OPAM_VERSION +# Install opam +RUN ./install_opam_static.sh \ + && rm -rf /tmp/install_opam_static.sh + USER tezos WORKDIR /home/tezos diff --git a/images/ci/scripts/install_opam_static.sh b/images/ci/scripts/install_opam_static.sh new file mode 120000 index 000000000000..fe5761f2f455 --- /dev/null +++ b/images/ci/scripts/install_opam_static.sh @@ -0,0 +1 @@ +../../scripts/install_opam_static.sh \ No newline at end of file diff --git a/images/create_ci_images.sh b/images/create_ci_images.sh index 6ee3d9d04920..c96c292f94a2 100755 --- a/images/create_ci_images.sh +++ b/images/create_ci_images.sh @@ -206,6 +206,7 @@ build() { --cache-from="$f_image_name_protected" \ --build-arg BUILD_IMAGE="alpine:${alpine_version}" \ --build-arg OCAML_VERSION="${ocaml_version}" \ + --build-arg OPAM_VERSION="${opam_version}" \ --build-arg TARGETARCH="${targetarch}" \ --build-arg NPM_REGISTRY_DOMAIN="${NPM_REGISTRY_DOMAIN:-}" \ --build-arg NPM_REGISTRY="${NPM_REGISTRY:-}" \ diff --git a/scripts/version.sh b/scripts/version.sh index 3f2e0cb81f21..d4bcdbc17c1c 100644 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -52,7 +52,9 @@ export rust_version='1.86.0' # Installed via apk cargo export cargo_version='1.86.0' -# Installed via apk opam +# Installed via install_opam_static.sh +# beware of updating opam to 2.4.0. +# See https://gitlab.com/tezos/tezos/-/merge_requests/18809 export opam_version='2.3.0' # Installed via apk python3-dev -- GitLab From cbd9f9364399b07d9983a10fc2e8b4286a8a6905 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Fri, 25 Jul 2025 16:08:35 +0200 Subject: [PATCH 2/2] images: make OPAM_VERSION a mandatory value for install_opam_static.sh --- images/packages/debian-deps-build.Dockerfile | 4 ++++ images/packages/rpm-deps-build.Dockerfile | 3 +++ images/scripts/install_opam_static.sh | 2 +- scripts/ci/build-packages-dependencies.sh | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/images/packages/debian-deps-build.Dockerfile b/images/packages/debian-deps-build.Dockerfile index 19dc6ed61602..00322adaf903 100644 --- a/images/packages/debian-deps-build.Dockerfile +++ b/images/packages/debian-deps-build.Dockerfile @@ -43,6 +43,10 @@ RUN echo "Acquire::http::Proxy \"$APT_PROXY\";" > /etc/apt/apt.conf.d/01proxy && apt-get clean && \ rm -rf /var/lib/apt/lists/* + +ARG OPAM_VERSION +ENV OPAM_VERSION=${OPAM_VERSION} + RUN /tmp/install_sccache_static.sh && \ /tmp/install_datadog_static.sh && \ /tmp/install_opam_static.sh diff --git a/images/packages/rpm-deps-build.Dockerfile b/images/packages/rpm-deps-build.Dockerfile index 6b08afa67598..cec4da4d5a97 100644 --- a/images/packages/rpm-deps-build.Dockerfile +++ b/images/packages/rpm-deps-build.Dockerfile @@ -11,6 +11,9 @@ ENV TZ=Etc/UTC ENV BLST_PORTABLE=true ENV VENV_PATH=$HOME/venv +ARG OPAM_VERSION +ENV OPAM_VERSION=${OPAM_VERSION} + #hadolint ignore=DL3041 RUN dnf -y update &&\ dnf install -y rpmdevtools &&\ diff --git a/images/scripts/install_opam_static.sh b/images/scripts/install_opam_static.sh index 14ffd1ba8852..da2dfae57db1 100755 --- a/images/scripts/install_opam_static.sh +++ b/images/scripts/install_opam_static.sh @@ -4,7 +4,7 @@ set -eu -OPAM_VERSION="${OPAM_VERSION:-2.3.0}" +OPAM_VERSION="${OPAM_VERSION:?"Please call this script with OPAM_VERSION"}" # Architecture detection ARCH=$(uname -m) diff --git a/scripts/ci/build-packages-dependencies.sh b/scripts/ci/build-packages-dependencies.sh index e655bb7f532f..0c741bae852b 100755 --- a/scripts/ci/build-packages-dependencies.sh +++ b/scripts/ci/build-packages-dependencies.sh @@ -40,6 +40,7 @@ docker build \ --build-arg=BUILDKIT_INLINE_CACHE=1 \ --build-arg IMAGE="$DISTRIBUTION:$RELEASE" \ --build-arg APT_PROXY="${APT_PROXY_DEB:-}" \ + --build-arg OPAM_VERSION="${opam_version}" \ --cache-from="${DEP_IMAGE}:${ARCHITECTURE}-${CI_COMMIT_REF_SLUG}" \ --cache-from="${DEP_IMAGE_PROTECTED}:master" \ -t "$LOCAL_IMAGE_NAME" \ -- GitLab