diff --git a/buildkite/src/Command/MinaArtifact.dhall b/buildkite/src/Command/MinaArtifact.dhall index 3039f5cd83a8..af29c1991905 100644 --- a/buildkite/src/Command/MinaArtifact.dhall +++ b/buildkite/src/Command/MinaArtifact.dhall @@ -90,6 +90,16 @@ let pipeline : DebianVersions.DebVersion -> Pipeline.Config.Type = \(debVersion in DockerImage.generateStep archiveSpec, + -- archive image + let archiveSpec = DockerImage.ReleaseSpec::{ + deps=DebianVersions.dependsOn debVersion, + service="mina-archive-maintenance", + deb_codename="${DebianVersions.lowerName debVersion}", + step_key="archive-maintenance-${DebianVersions.lowerName debVersion}-docker-image" + } + in + DockerImage.generateStep archiveSpec, + -- rosetta image let rosettaSpec = DockerImage.ReleaseSpec::{ service="mina-rosetta", diff --git a/buildkite/src/Constants/ContainerImages.dhall b/buildkite/src/Constants/ContainerImages.dhall index 9e8b7a9a72d9..ec84c58ffa10 100644 --- a/buildkite/src/Constants/ContainerImages.dhall +++ b/buildkite/src/Constants/ContainerImages.dhall @@ -6,10 +6,10 @@ { toolchainBase = "codaprotocol/ci-toolchain-base:v3", minaToolchainStretch = "gcr.io/o1labs-192920/mina-toolchain@sha256:e4920236094ab23caad9ec9cda39babde6b777541db054e8138f71ac464f57b5", - minaToolchainBuster = "gcr.io/o1labs-192920/mina-toolchain@sha256:eea4b6cd7ce0a92649bd8d8283c97a94c0cf70ce00fd63c3d08f1bfc15d2531d", - minaToolchainBullseye = "gcr.io/o1labs-192920/mina-toolchain@sha256:73562fcc35dcabd342f66f1d69ae12704e92d69edc0b37e7c88b4d11bc623f23", - minaToolchainBookworm = "gcr.io/o1labs-192920/mina-toolchain@sha256:73562fcc35dcabd342f66f1d69ae12704e92d69edc0b37e7c88b4d11bc623f23", - minaToolchain = "gcr.io/o1labs-192920/mina-toolchain@sha256:73562fcc35dcabd342f66f1d69ae12704e92d69edc0b37e7c88b4d11bc623f23", + minaToolchainBuster = "gcr.io/o1labs-192920/mina-toolchain@sha256:152fd2d4375fa3ecbfeb60608f62bd4430f19582092e69809bc445c7a1f2f5f6", + minaToolchainBullseye = "gcr.io/o1labs-192920/mina-toolchain@sha256:d9561c6dfe0e77106233f6e000fa249f41abc26ced742cd641717e4d133afcc9", + minaToolchainBookworm = "gcr.io/o1labs-192920/mina-toolchain@sha256:d9561c6dfe0e77106233f6e000fa249f41abc26ced742cd641717e4d133afcc9", + minaToolchain = "gcr.io/o1labs-192920/mina-toolchain@sha256:d9561c6dfe0e77106233f6e000fa249f41abc26ced742cd641717e4d133afcc9", delegationBackendToolchain = "gcr.io/o1labs-192920/delegation-backend-production@sha256:8ca5880845514ef56a36bf766a0f9de96e6200d61b51f80d9f684a0ec9c031f4", elixirToolchain = "elixir:1.10-alpine", nodeToolchain = "node:14.13.1-stretch-slim", diff --git a/dockerfiles/Dockerfile-mina-archive-maintenance b/dockerfiles/Dockerfile-mina-archive-maintenance new file mode 100644 index 000000000000..32a8f20118b9 --- /dev/null +++ b/dockerfiles/Dockerfile-mina-archive-maintenance @@ -0,0 +1,43 @@ +ARG image=debian:bullseye-slim +FROM ${image} + +# Run with `docker build --build-arg deb_version=` +ARG deb_version +ARG deb_codename=stretch +ARG deb_release=alpha + +ENV DEBIAN_FRONTEND noninteractive +RUN echo "Building image with version $deb_codename $deb_release $deb_version" + +COPY scripts/archive-entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +# Dependencies +RUN apt-get update --quiet --yes \ + && apt-get upgrade --quiet --yes \ + && apt-get install --quiet --yes --no-install-recommends \ + procps \ + curl \ + jq \ + dumb-init \ + libssl1.1 \ + libgomp1 \ + libpq-dev \ + apt-transport-https \ + ca-certificates \ + dnsutils \ + tzdata \ + postgresql \ + postgresql-contrib \ + apt-utils \ + procps \ + man \ + && rm -rf /var/lib/apt/lists/* + +# archive-node package +RUN echo "deb [trusted=yes] http://packages.o1test.net $deb_codename $deb_release" > /etc/apt/sources.list.d/o1.list \ + && apt-get update --quiet --yes \ + && apt-get install --quiet --yes "mina-archive=$deb_version" "mina-archive-maintenance=$deb_version" \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["/usr/bin/dumb-init", "/entrypoint.sh"] diff --git a/dockerfiles/stages/1-build-deps b/dockerfiles/stages/1-build-deps index a20f30f8665a..05010cd3d23e 100644 --- a/dockerfiles/stages/1-build-deps +++ b/dockerfiles/stages/1-build-deps @@ -51,6 +51,7 @@ RUN apt-get update --quiet \ curl \ file \ git \ + git-lfs \ '(^lld-10$|^lld-11$)' \ m4 \ pkg-config \ diff --git a/scripts/archive/build-release-archives.sh b/scripts/archive/build-release-archives.sh index f8f5558ff80e..56dd313acb2f 100755 --- a/scripts/archive/build-release-archives.sh +++ b/scripts/archive/build-release-archives.sh @@ -88,7 +88,7 @@ dune build "--profile=${DUNE_PROFILE}" src/app/replayer/replayer.exe cd _build -PROJECT="mina-maintenance-replayer" +PROJECT="mina-archive-maintenance" BUILD_DIR="deb_build" ###### replayer deb @@ -116,6 +116,7 @@ cat "${BUILD_DIR}/DEBIAN/control" echo "------------------------------------------------------------" # Binaries +rm -rf "${BUILD_DIR}/usr/local/bin" mkdir -p "${BUILD_DIR}/usr/local/bin" pwd ls @@ -134,4 +135,4 @@ echo "------------------------------------------------------------" dpkg-deb --build "${BUILD_DIR}" ${PROJECT}_${MINA_DEB_VERSION}.deb ls -lh mina*.deb -git restore .. +git reset --hard diff --git a/scripts/archive/caqti-compatible.patch b/scripts/archive/caqti-compatible.patch index bc2cd6c321a5..a87af0f53275 100644 --- a/scripts/archive/caqti-compatible.patch +++ b/scripts/archive/caqti-compatible.patch @@ -1,24 +1,3 @@ -diff --git a/buildkite/src/Constants/ContainerImages.dhall b/buildkite/src/Constants/ContainerImages.dhall -index 9e8b7a9a72d..11412f019ac 100644 ---- a/buildkite/src/Constants/ContainerImages.dhall -+++ b/buildkite/src/Constants/ContainerImages.dhall -@@ -5,11 +5,11 @@ - -- NOTE: minaToolchainBookworm is also used for building Ubuntu Jammy packages in CI - { - toolchainBase = "codaprotocol/ci-toolchain-base:v3", -- minaToolchainStretch = "gcr.io/o1labs-192920/mina-toolchain@sha256:e4920236094ab23caad9ec9cda39babde6b777541db054e8138f71ac464f57b5", -- minaToolchainBuster = "gcr.io/o1labs-192920/mina-toolchain@sha256:eea4b6cd7ce0a92649bd8d8283c97a94c0cf70ce00fd63c3d08f1bfc15d2531d", -- minaToolchainBullseye = "gcr.io/o1labs-192920/mina-toolchain@sha256:73562fcc35dcabd342f66f1d69ae12704e92d69edc0b37e7c88b4d11bc623f23", -- minaToolchainBookworm = "gcr.io/o1labs-192920/mina-toolchain@sha256:73562fcc35dcabd342f66f1d69ae12704e92d69edc0b37e7c88b4d11bc623f23", -- minaToolchain = "gcr.io/o1labs-192920/mina-toolchain@sha256:73562fcc35dcabd342f66f1d69ae12704e92d69edc0b37e7c88b4d11bc623f23", -+ minaToolchainStretch = "gcr.io/o1labs-192920/mina-toolchain@sha256:5e46491494ba1630962fc160a96e28262a1ccd782780033f313478f7ed6e9d59", -+ minaToolchainBuster = "gcr.io/o1labs-192920/mina-toolchain@sha256:91c034a9dd2b1a9bbc8d8fc36c01555ea84463f391c36473810e6711574162cf", -+ minaToolchainBullseye = "gcr.io/o1labs-192920/mina-toolchain@sha256:5e46491494ba1630962fc160a96e28262a1ccd782780033f313478f7ed6e9d59", -+ minaToolchainBookworm = "gcr.io/o1labs-192920/mina-toolchain@sha256:5e46491494ba1630962fc160a96e28262a1ccd782780033f313478f7ed6e9d59", -+ minaToolchain = "gcr.io/o1labs-192920/mina-toolchain@sha256:5e46491494ba1630962fc160a96e28262a1ccd782780033f313478f7ed6e9d59", - delegationBackendToolchain = "gcr.io/o1labs-192920/delegation-backend-production@sha256:8ca5880845514ef56a36bf766a0f9de96e6200d61b51f80d9f684a0ec9c031f4", - elixirToolchain = "elixir:1.10-alpine", - nodeToolchain = "node:14.13.1-stretch-slim", diff --git a/opam.export b/opam.export index c532c30d0a7..390ba09bcb6 100644 --- a/opam.export diff --git a/scripts/release-docker.sh b/scripts/release-docker.sh index c8e31a504229..4e05f2d4cbfd 100755 --- a/scripts/release-docker.sh +++ b/scripts/release-docker.sh @@ -10,7 +10,7 @@ set +x CLEAR='\033[0m' RED='\033[0;31m' # Array of valid service names -VALID_SERVICES=('mina-archive', 'mina-daemon' 'mina-rosetta' 'mina-toolchain' 'bot' 'leaderboard' 'delegation-backend' 'delegation-backend-toolchain' 'mina-test-executive') +VALID_SERVICES=('mina-archive', 'mina-archive-maintenance', 'mina-daemon' 'mina-rosetta' 'mina-toolchain' 'bot' 'leaderboard' 'delegation-backend' 'delegation-backend-toolchain' 'mina-test-executive') function usage() { if [[ -n "$1" ]]; then @@ -81,6 +81,10 @@ mina-daemon) DOCKER_CONTEXT="dockerfiles/" VERSION="${VERSION}-${NETWORK##*=}" ;; +mina-archive-maintenance) + DOCKERFILE_PATH="dockerfiles/Dockerfile-mina-archive-maintenance" + DOCKER_CONTEXT="dockerfiles/" + ;; mina-toolchain) DOCKERFILE_PATH="dockerfiles/stages/1-build-deps dockerfiles/stages/2-opam-deps dockerfiles/stages/3-toolchain" ;;