From 739b57e99620e6842c84c639eadb7c0fccc22717 Mon Sep 17 00:00:00 2001 From: Kaniska Date: Wed, 12 Nov 2025 10:47:24 +0000 Subject: [PATCH 1/4] Fix for docker container event 'start' has deprecated fields in Docker v29.0.0 --- src/spec-node/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spec-node/utils.ts b/src/spec-node/utils.ts index 2fe141320..63988827c 100644 --- a/src/spec-node/utils.ts +++ b/src/spec-node/utils.ts @@ -178,8 +178,8 @@ export async function startEventSeen(params: DockerResolverParameters, labels: R if (line.trim()) { try { const info = JSON.parse(line); - // Docker uses 'status', Podman 'Status'. - if ((info.status || info.Status) === 'start' && await hasLabels(params, info, labels)) { + // Docker uses 'status', Podman 'Status'. Docker v29.0.0 onwards use 'Action' as 'status' is deprecated + if ((info.status || info.Status || info.Action) === 'start' && await hasLabels(params, info, labels)) { eventsProcess.terminate(); resolve(); } From 4aca338b3e8ef2094d14dcb6a3a48243238f25e3 Mon Sep 17 00:00:00 2001 From: Kaniska Date: Wed, 12 Nov 2025 14:18:40 +0000 Subject: [PATCH 2/4] Re-trigger test --- src/spec-node/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spec-node/utils.ts b/src/spec-node/utils.ts index 63988827c..81f6b6b17 100644 --- a/src/spec-node/utils.ts +++ b/src/spec-node/utils.ts @@ -178,7 +178,7 @@ export async function startEventSeen(params: DockerResolverParameters, labels: R if (line.trim()) { try { const info = JSON.parse(line); - // Docker uses 'status', Podman 'Status'. Docker v29.0.0 onwards use 'Action' as 'status' is deprecated + // Docker uses 'status', Podman 'Status'. Docker v29.0.0 onwards use 'Action' as 'status' is deprecated. if ((info.status || info.Status || info.Action) === 'start' && await hasLabels(params, info, labels)) { eventsProcess.terminate(); resolve(); From ad97b04f3320acef894b86ad54de7dd8bf9e2641 Mon Sep 17 00:00:00 2001 From: Kaniska Date: Thu, 13 Nov 2025 08:20:42 +0000 Subject: [PATCH 3/4] Adding a test workflow for docker v29. --- .github/workflows/test-docker-v29.yml | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/test-docker-v29.yml diff --git a/.github/workflows/test-docker-v29.yml b/.github/workflows/test-docker-v29.yml new file mode 100644 index 000000000..0f59f4d0f --- /dev/null +++ b/.github/workflows/test-docker-v29.yml @@ -0,0 +1,44 @@ +name: Docker v29 Tests + +on: + push: + branches: ['main', 'docker-v29-issue-old'] + pull_request: + branches: ['main'] + +jobs: + test-docker-v29: + name: Docker v29.0.0 Compatibility + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v5 + with: + node-version: '18.x' + + - name: Install Docker v29.0.0 + run: | + sudo apt-get remove -y docker-ce docker-ce-cli containerd.io || true + curl -fsSL https://get.docker.com -o get-docker.sh + sudo VERSION=29.0.0 sh get-docker.sh + sudo systemctl restart docker + + # Verify + docker version + DOCKER_VERSION=$(docker version --format '{{.Server.Version}}') + if [[ ! "$DOCKER_VERSION" =~ ^29\. ]]; then + echo "ERROR: Expected Docker v29.x but got $DOCKER_VERSION" + exit 1 + fi + + - name: Install and Test + run: | + yarn install --frozen-lockfile + yarn type-check + yarn package + yarn test-matrix --forbid-only src/test/cli.up.test.ts + env: + CI: true + From a9d07bb21434f45e7d1441d05edd472bec748e0f Mon Sep 17 00:00:00 2001 From: Kaniska Date: Thu, 13 Nov 2025 08:37:15 +0000 Subject: [PATCH 4/4] Verify at the right place. --- .github/workflows/test-docker-v29.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-docker-v29.yml b/.github/workflows/test-docker-v29.yml index 0f59f4d0f..4560e0694 100644 --- a/.github/workflows/test-docker-v29.yml +++ b/.github/workflows/test-docker-v29.yml @@ -24,17 +24,16 @@ jobs: curl -fsSL https://get.docker.com -o get-docker.sh sudo VERSION=29.0.0 sh get-docker.sh sudo systemctl restart docker - + + - name: Verify Docker version, Install and Test + run: | # Verify docker version DOCKER_VERSION=$(docker version --format '{{.Server.Version}}') if [[ ! "$DOCKER_VERSION" =~ ^29\. ]]; then echo "ERROR: Expected Docker v29.x but got $DOCKER_VERSION" exit 1 - fi - - - name: Install and Test - run: | + fi yarn install --frozen-lockfile yarn type-check yarn package