From b01221dfec82652b1d68506646c40c73465d8688 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 11:34:29 +0200 Subject: [PATCH 1/9] Add node 16 e2e tests again --- .github/workflows/test-on-pr.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-on-pr.yml b/.github/workflows/test-on-pr.yml index d7e9aab..bf2fa98 100644 --- a/.github/workflows/test-on-pr.yml +++ b/.github/workflows/test-on-pr.yml @@ -93,6 +93,11 @@ jobs: npm_version: "latest" yarn_version: "latest" pnpm_version: "latest" + # EOL compatibility - Node 16 (EOL sept 2023) + - node_version: "16" + npm_version: "8.0.0" + yarn_version: "1.22.0" + pnpm_version: "8.0.0" steps: - name: Checkout code From 09c66bc47bda362c9ef86d7b1083c0e08d262be4 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 11:52:24 +0200 Subject: [PATCH 2/9] Fix node 16 tests? --- .github/workflows/test-on-pr.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-on-pr.yml b/.github/workflows/test-on-pr.yml index bf2fa98..934a410 100644 --- a/.github/workflows/test-on-pr.yml +++ b/.github/workflows/test-on-pr.yml @@ -112,7 +112,9 @@ jobs: run: curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | sh -s -- --ci - name: Install dependencies (root) - run: npm ci + run: | + mv ./npm-shrinkwrap.json ./package-lock.json + npm ci - name: Run E2E tests env: From 51c82060e43cc38c18d353d99c1446c906972b52 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 13:22:25 +0200 Subject: [PATCH 3/9] Copy shrinkwrap for e2e tests --- .github/workflows/test-on-pr.yml | 2 +- test/e2e/Dockerfile | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-on-pr.yml b/.github/workflows/test-on-pr.yml index 934a410..aef6683 100644 --- a/.github/workflows/test-on-pr.yml +++ b/.github/workflows/test-on-pr.yml @@ -113,7 +113,7 @@ jobs: - name: Install dependencies (root) run: | - mv ./npm-shrinkwrap.json ./package-lock.json + cp npm-shrinkwrap.json packages/safe-chain/ npm ci - name: Run E2E tests diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index bc7ffc2..3d3225a 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -7,6 +7,7 @@ WORKDIR /app # Copy package files first for better caching COPY packages/safe-chain/package*.json ./ +COPY packages/safe-chain/npm-shrinkwrap.json ./ # Install dependencies RUN npm install From 05aabf1e1a17b018a6e1d547682cf39b9dfa2dca Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 13:38:34 +0200 Subject: [PATCH 4/9] yarn version --- .github/workflows/test-on-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-on-pr.yml b/.github/workflows/test-on-pr.yml index aef6683..e722793 100644 --- a/.github/workflows/test-on-pr.yml +++ b/.github/workflows/test-on-pr.yml @@ -96,7 +96,7 @@ jobs: # EOL compatibility - Node 16 (EOL sept 2023) - node_version: "16" npm_version: "8.0.0" - yarn_version: "1.22.0" + yarn_version: "1.22.22" pnpm_version: "8.0.0" steps: From 79326e603e2d8659fe41e0b3584fb2a26eb064c1 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 14:01:09 +0200 Subject: [PATCH 5/9] Add dockerignore --- test/e2e/.dockerignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 test/e2e/.dockerignore diff --git a/test/e2e/.dockerignore b/test/e2e/.dockerignore new file mode 100644 index 0000000..210c47a --- /dev/null +++ b/test/e2e/.dockerignore @@ -0,0 +1,2 @@ +node_modules +Dockerfile From 4c9d5447b8da88bb107f98e2d3b44123693426f3 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 14:40:01 +0200 Subject: [PATCH 6/9] Add logging --- test/e2e/Dockerfile | 2 +- test/e2e/setup.teardown.e2e.spec.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index 3d3225a..da5b366 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -6,7 +6,7 @@ ENV CI=true WORKDIR /app # Copy package files first for better caching -COPY packages/safe-chain/package*.json ./ +COPY packages/safe-chain/package.json ./ COPY packages/safe-chain/npm-shrinkwrap.json ./ # Install dependencies diff --git a/test/e2e/setup.teardown.e2e.spec.js b/test/e2e/setup.teardown.e2e.spec.js index 0ddfaf4..a3fdce2 100644 --- a/test/e2e/setup.teardown.e2e.spec.js +++ b/test/e2e/setup.teardown.e2e.spec.js @@ -25,7 +25,8 @@ describe("E2E: safe-chain setup command", () => { it(`safe-chain setup wraps npm command after installation for ${shell}`, async () => { // setting up the container const installationShell = await container.openShell(shell); - await installationShell.runCommand("safe-chain setup"); + const out = await installationShell.runCommand("safe-chain setup"); + console.log(out.output); const projectShell = await container.openShell(shell); await projectShell.runCommand("cd /testapp"); From 7b9f9bbf3cc2639e9b2394188c9ecbe3de03d614 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 15:07:40 +0200 Subject: [PATCH 7/9] Install safe-chain from registry as a test --- test/e2e/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index da5b366..23ad33f 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -80,7 +80,8 @@ RUN apt-get update && apt-get install -y pipx && \ # Copy and install Safe chain COPY --from=builder /app/*.tgz /pkgs/ -RUN npm install -g /pkgs/*.tgz +# RUN npm install -g /pkgs/*.tgz +RUN npm install -g @aikidosec/safe-chain WORKDIR /testapp RUN npm init -y From 78718744c52b73c89f696754553b91214b06b2c2 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 15:41:07 +0200 Subject: [PATCH 8/9] Mimic production build --- .github/workflows/test-on-pr.yml | 4 +--- test/e2e/Dockerfile | 15 ++++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test-on-pr.yml b/.github/workflows/test-on-pr.yml index e722793..476e722 100644 --- a/.github/workflows/test-on-pr.yml +++ b/.github/workflows/test-on-pr.yml @@ -112,9 +112,7 @@ jobs: run: curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | sh -s -- --ci - name: Install dependencies (root) - run: | - cp npm-shrinkwrap.json packages/safe-chain/ - npm ci + run: npm ci - name: Run E2E tests env: diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index 23ad33f..cf8961d 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -6,18 +6,20 @@ ENV CI=true WORKDIR /app # Copy package files first for better caching -COPY packages/safe-chain/package.json ./ -COPY packages/safe-chain/npm-shrinkwrap.json ./ +COPY packages/safe-chain/package.json ./packages/safe-chain/package.json +COPY ./package.json ./package.json +COPY ./npm-shrinkwrap.json ./ # Install dependencies -RUN npm install +RUN npm ci # Copy the rest of the application COPY packages/safe-chain ./ # Build the application -RUN npm --no-git-tag-version version 1.0.0 --allow-same-version -RUN npm pack +RUN npm --no-git-tag-version version 1.0.0 --allow-same-version --workspace=packages/safe-chain +RUN cp ./npm-shrinkwrap.json packages/safe-chain/ +RUN npm pack --workspace=packages/safe-chain FROM buildpack-deps:trixie @@ -80,8 +82,7 @@ RUN apt-get update && apt-get install -y pipx && \ # Copy and install Safe chain COPY --from=builder /app/*.tgz /pkgs/ -# RUN npm install -g /pkgs/*.tgz -RUN npm install -g @aikidosec/safe-chain +RUN npm install -g /pkgs/*.tgz WORKDIR /testapp RUN npm init -y From 28ee123412f839fd5bfd02862d41ebcd206059b2 Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Tue, 21 Apr 2026 15:47:22 +0200 Subject: [PATCH 9/9] Fix dockerfile --- test/e2e/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index cf8961d..53a7882 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24-bookworm as builder +FROM node:24-bookworm AS builder ENV CI=true @@ -14,7 +14,7 @@ COPY ./npm-shrinkwrap.json ./ RUN npm ci # Copy the rest of the application -COPY packages/safe-chain ./ +COPY packages/safe-chain ./packages/safe-chain # Build the application RUN npm --no-git-tag-version version 1.0.0 --allow-same-version --workspace=packages/safe-chain