From 862e7e6ad4138958ec703fcc8f5fbd77be0e6688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Wed, 7 Oct 2026 16:54:38 +0200 Subject: [PATCH] gha/e2e: Also test against moby master MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a "master" engine-version to the e2e matrix to catch regressions against the upcoming engine release before it reaches an rc. There is no "master" dind image, so just copy the engine binary from the moby/moby-bin:master image and put it into the latest dind image. Signed-off-by: Paweł Gronowski --- .github/workflows/e2e.yml | 1 + e2e/compose-env.yaml | 1 + e2e/testdata/Dockerfile.connhelper-ssh | 10 +++++++++- e2e/testdata/engine/Dockerfile | 11 ++++++++++- scripts/test/e2e/run | 5 +++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 37d55d6dbe..b7b46b5e71 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -37,6 +37,7 @@ jobs: - alpine - debian engine-version: + - master # moby/moby-bin:master - rc # latest rc - 29 # latest - 28 # latest - 1 diff --git a/e2e/compose-env.yaml b/e2e/compose-env.yaml index c4f3774319..975b1b18eb 100644 --- a/e2e/compose-env.yaml +++ b/e2e/compose-env.yaml @@ -31,6 +31,7 @@ services: dockerfile: engine/Dockerfile args: ENGINE_VERSION: ${ENGINE_VERSION:-29} + ENGINE_SOURCE: ${ENGINE_SOURCE:-dind} privileged: true command: ['--insecure-registry=registry:5000', '--insecure-registry=privateregistry:5001', '--experimental'] environment: diff --git a/e2e/testdata/Dockerfile.connhelper-ssh b/e2e/testdata/Dockerfile.connhelper-ssh index 6f65ea7934..61cde646f1 100644 --- a/e2e/testdata/Dockerfile.connhelper-ssh +++ b/e2e/testdata/Dockerfile.connhelper-ssh @@ -3,8 +3,16 @@ # ENGINE_VERSION is the version of the (docker-in-docker) Docker Engine to # test against. ARG ENGINE_VERSION=29 +# ENGINE_SOURCE is "dind" or "moby-bin" (moby/moby-bin:master). +ARG ENGINE_SOURCE=dind -FROM docker:${ENGINE_VERSION}-dind +FROM docker:${ENGINE_VERSION}-dind AS engine-dind + +# moby/moby-bin only has the daemon binaries. +FROM docker:dind AS engine-moby-bin +COPY --link --from=moby/moby-bin:master / /usr/local/bin/ + +FROM engine-${ENGINE_SOURCE} # the openssh-client update is needed for security reasons when using docker:23.0-dind, currently maintained as an lts by mirantis RUN apk --no-cache add openssl openssh-client openssh-server shadow && \ diff --git a/e2e/testdata/engine/Dockerfile b/e2e/testdata/engine/Dockerfile index d688a20606..3dea13eabc 100644 --- a/e2e/testdata/engine/Dockerfile +++ b/e2e/testdata/engine/Dockerfile @@ -1,5 +1,14 @@ ARG ENGINE_VERSION -FROM docker:${ENGINE_VERSION}-dind +# ENGINE_SOURCE is "dind" or "moby-bin" (moby/moby-bin:master). +ARG ENGINE_SOURCE=dind + +FROM docker:${ENGINE_VERSION}-dind AS engine-dind + +# moby/moby-bin only has the daemon binaries. +FROM docker:dind AS engine-moby-bin +COPY --link --from=moby/moby-bin:master / /usr/local/bin/ + +FROM engine-${ENGINE_SOURCE} # Trust the tlsregistry CA so dockerd connects without --insecure-registry. COPY registry/certs/ca.crt /usr/local/share/ca-certificates/tlsregistry-ca.crt diff --git a/scripts/test/e2e/run b/scripts/test/e2e/run index ad6caaaa13..6f1cc1a4c9 100755 --- a/scripts/test/e2e/run +++ b/scripts/test/e2e/run @@ -42,6 +42,11 @@ setup() { sh e2e/testdata/registry/certs/gen-certs.sh fi + # ENGINE_VERSION=master tests against moby/moby-bin:master. + if [ "${ENGINE_VERSION:-}" = "master" ]; then + export ENGINE_SOURCE=moby-bin + fi + COMPOSE_PROJECT_NAME=$project COMPOSE_FILE=$file docker compose up --build -d >&2 # Ensure supporting services exist before running tests. If one fails to start,