From 89a96dd7a3266826661e540ac84d89e503aa2f4e Mon Sep 17 00:00:00 2001 From: Marco Walz Date: Tue, 15 Sep 2026 15:48:47 +0200 Subject: [PATCH] chore(ci): bump the dev-env image to v2.2.1 and drop the mops prewarm v2.2.1 ships mops 3.2.2, which fixes the toolchain download race (caffeinelabs/mops#818) that the prewarm step worked around, so the step goes with it. Verified locally: `icp build` on motoko/pub-sub with a cold moc cache and no prewarm is 3/3 clean on 3.2.2, against 3/3 failures on the 3.1.0 that v2.0.0 shipped. 3.2.2 also closes GHSA-7w5x-hrqm-74c2 (CVSS 8.2), where a malformed mops.toml reached during dependency resolution hangs the parser. The image also moves icp-cli 1.3.0 -> 1.5.0, Node 24.15 -> 24.21, pnpm 11.4 -> 11.26 and yq 4.53.3 -> 4.53.6. Co-Authored-By: Claude Opus 5 (1M context) --- .devcontainer/devcontainer.json | 2 +- .github/workflows/_run-example.yml | 13 +------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e6329fdb1..cc474432e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "ICP Examples (Motoko + Rust)", - "image": "ghcr.io/dfinity/icp-dev-env-all:v2.0.0", + "image": "ghcr.io/dfinity/icp-dev-env-all:v2.2.1", "forwardPorts": [8000, 5173], "portsAttributes": { "8000": { diff --git a/.github/workflows/_run-example.yml b/.github/workflows/_run-example.yml index 3e68d0c15..f43c8f660 100644 --- a/.github/workflows/_run-example.yml +++ b/.github/workflows/_run-example.yml @@ -50,7 +50,7 @@ on: jobs: run: runs-on: ubuntu-24.04 - container: ghcr.io/dfinity/icp-dev-env-${{ inputs.language }}:v2.0.0 + container: ghcr.io/dfinity/icp-dev-env-${{ inputs.language }}:v2.2.1 env: ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: @@ -60,17 +60,6 @@ jobs: uses: dfinity/pocketic@a980c334fab1b21b0b8a6bba38e1a10836e7258b # main with: pocket-ic-server-version: ${{ inputs.pocketic-version }} - # Projects with more than one Motoko canister run one `mops build` per canister - # concurrently, and those invocations race on the shared moc toolchain download and - # extraction: whichever build loses reads a half-extracted moc and fails with no - # diagnostics. Warming the cache first makes the download happen exactly once. - # Remove once caffeinelabs/mops#818 is fixed and released. - - name: Warm the mops toolchain cache - working-directory: ${{ inputs.working-directory }} - run: | - if [ -f mops.toml ] && command -v mops > /dev/null; then - mops install - fi - name: Run working-directory: ${{ inputs.working-directory }} run: ${{ inputs.run }}