From 3facc85e092791d3d0997cc9ed41a755d75f1bc8 Mon Sep 17 00:00:00 2001 From: "n8n-cat-bot[bot]" <283985454+n8n-cat-bot[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 21:45:17 +0100 Subject: [PATCH] ci: Add build-on-miss fallback to E2E docker image load (#31232) Co-authored-by: n8n-cat-bot[bot] Co-authored-by: Claude Opus 4.7 --- .github/actions/load-n8n-docker/action.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/actions/load-n8n-docker/action.yml b/.github/actions/load-n8n-docker/action.yml index 688854358e3..5999c9da22d 100644 --- a/.github/actions/load-n8n-docker/action.yml +++ b/.github/actions/load-n8n-docker/action.yml @@ -4,9 +4,14 @@ # # After this action runs, `n8nio/n8n:local` and `n8nio/runners:local` are # present on the runner. +# +# If the cache entry has been evicted (e.g. Blacksmith cache thrash between +# prepare-docker and slow shards), the action falls back to invoking +# build-n8n-docker, which leaves both images tagged in dockerd and re-saves +# the tarball to cache as a side effect. name: 'Load n8n Docker images from cache' -description: 'Restores the zstd-compressed n8n + runners image tarball from the variant+SHA-keyed GHA cache and loads both images into the local docker daemon.' +description: 'Restores the zstd-compressed n8n + runners image tarball from the variant+SHA-keyed GHA cache and loads both images into the local docker daemon. Falls back to rebuilding on cache miss.' inputs: build-variant: @@ -18,12 +23,25 @@ runs: using: 'composite' steps: - name: Restore image tarball from cache + id: restore uses: actions/cache/restore@640a1c2554105b57832a23eea0b4672fc7a790d5 # v4.2.3 with: key: n8n-docker-image-${{ inputs.build-variant }}-${{ github.sha }} path: /tmp/n8n-image.tar.zst - fail-on-cache-miss: true - name: Load n8n and runners images into docker + if: steps.restore.outputs.cache-hit == 'true' shell: bash run: zstd -d -c /tmp/n8n-image.tar.zst | docker load + + - name: Warn on cache miss + if: steps.restore.outputs.cache-hit != 'true' + shell: bash + run: | + echo "::warning::Cache miss for n8n-docker-image-${{ inputs.build-variant }}-${{ github.sha }} (SHA ${{ github.sha }}); falling back to rebuild via build-n8n-docker." + + - name: Rebuild image on cache miss + if: steps.restore.outputs.cache-hit != 'true' + uses: ./.github/actions/build-n8n-docker + with: + build-variant: ${{ inputs.build-variant }}