chore: bump icp-dev-env images to 1.0.1 + Makefile → test.sh (merged examples)#1423
Conversation
Updates all already-merged Motoko and Rust examples:
- icp-dev-env-{motoko,rust,all} images: 0.3.2/1.0.0 → 1.0.1
- Convert Makefile test targets to test.sh bash scripts
- Update workflow files and READMEs accordingly
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- icrc2-swap: create deploy.sh (deploy target lost when Makefile was removed); update workflow from make deploy → bash deploy.sh - basic_bitcoin: convert Makefile → test.sh; update workflow make test → bash test.sh; preserve build-image and Docker container logic Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ls below 2000 The compiled WASM has a function with 2081 locals which exceeds the IC limit of 2000. shrink=true and compress=true enable wasm-opt passes that reduce the local count. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
npm install -g without pinning picked up icp-cli 1.0.0 on 2026-06-17, which appears to produce a Motoko WASM with 2081 locals in one function (IC limit is 2000). Pinning to 1.0.0 ensures consistent behavior matching the dev-env container images. shrink+compress left in icp.yaml as an additional wasm-opt pass that may help reduce the local count once the root cause is understood. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ession, tracked separately Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR updates already-migrated ICP examples to align with the repository’s current operational conventions by (1) pinning GitHub Actions container images to ghcr.io/dfinity/icp-dev-env-{motoko,rust,all}:1.0.1 and (2) replacing Makefile-based test targets with bash test.sh (plus a few example-specific scripts like deploy.sh / verify.sh).
Changes:
- Bump workflow container images across existing example workflows to
1.0.1. - Replace per-example
Makefiletest targets with bash scripts (test.sh, plus special-case scripts likemotoko/icrc2-swap/deploy.shandmotoko/parallel_calls/test-multi-subnet.sh). - Update READMEs and workflows to run
bash test.shinstead ofmake test.
Reviewed changes
Copilot reviewed 121 out of 121 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
| rust/who_am_i/test.sh | Adds bash-based tests replacing the Makefile target. |
| rust/who_am_i/Makefile | Removes Makefile-based test target. |
| rust/vetkeys/basic_vetkd/test.sh | Adds bash-based tests replacing the Makefile target. |
| rust/vetkeys/basic_vetkd/Makefile | Removes Makefile-based test target. |
| rust/icp_transfer/test.sh | Adds bash-based tests (including delta-based balance assertions). |
| rust/icp_transfer/README.md | Updates instructions from make test to bash test.sh. |
| rust/icp_transfer/Makefile | Removes Makefile-based test target. |
| rust/hello_world/test.sh | Adds bash-based tests replacing the Makefile target. |
| rust/hello_world/Makefile | Removes Makefile-based test target. |
| rust/flying_ninja/test.sh | Adds bash-based tests replacing the Makefile target. |
| rust/flying_ninja/README.md | Updates instructions from make test to bash test.sh. |
| rust/flying_ninja/Makefile | Removes Makefile-based test target. |
| rust/backend_only/test.sh | Adds bash-based tests replacing the Makefile target. |
| rust/backend_only/README.md | Updates instructions from make test to bash test.sh. |
| rust/backend_only/Makefile | Removes Makefile-based test target. |
| motoko/who_am_i/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/who_am_i/Makefile | Removes Makefile-based test target. |
| motoko/vetkeys/basic_vetkd/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/vetkeys/basic_vetkd/Makefile | Removes Makefile-based test target. |
| motoko/threshold-schnorr/verify.sh | Adds verification helper script used by test.sh. |
| motoko/threshold-schnorr/test.sh | Updates test flow to run simple checks + invoke verify.sh. |
| motoko/threshold-schnorr/README.md | Updates instructions from make test to bash test.sh. |
| motoko/threshold-schnorr/Makefile | Removes Makefile-based test target. |
| motoko/threshold-ecdsa/test.sh | Refactors test execution into bash script format and adds explicit PASS output. |
| motoko/threshold-ecdsa/README.md | Updates instructions from make test to bash test.sh. |
| motoko/threshold-ecdsa/Makefile | Removes Makefile-based test target. |
| motoko/superheroes/test.sh | Adds bash-based tests replacing the Makefile target (CRUD + idempotent ID capture). |
| motoko/superheroes/README.md | Updates instructions from make test to bash test.sh. |
| motoko/superheroes/Makefile | Removes Makefile-based test target. |
| motoko/send_http_post/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/send_http_post/README.md | Updates instructions from make test to bash test.sh. |
| motoko/send_http_post/Makefile | Removes Makefile-based test target. |
| motoko/send_http_get/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/send_http_get/README.md | Updates instructions from make test to bash test.sh. |
| motoko/send_http_get/Makefile | Removes Makefile-based test target. |
| motoko/random_maze/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/random_maze/README.md | Updates instructions from make test to bash test.sh. |
| motoko/random_maze/Makefile | Removes Makefile-based test target. |
| motoko/query_stats/test.sh | Adds bash-based tests replacing the Makefile target (fast structural test). |
| motoko/query_stats/README.md | Updates instructions from make test to bash test.sh / bash test-stats.sh. |
| motoko/query_stats/Makefile | Removes Makefile-based test target(s). |
| motoko/pub-sub/test.sh | Adds bash-based tests replacing the Makefile target (with reinstall guidance). |
| motoko/pub-sub/README.md | Updates instructions from make test to bash test.sh. |
| motoko/pub-sub/Makefile | Removes Makefile-based test target. |
| motoko/parallel_calls/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/parallel_calls/test-multi-subnet.sh | Adds bash script for PocketIC multi-subnet job. |
| motoko/parallel_calls/README.md | Updates instructions from make test to bash test.sh. |
| motoko/parallel_calls/Makefile | Removes Makefile-based test target(s). |
| motoko/low_wasm_memory/test.sh | Adds bash-based tests replacing the Makefile target (settings + polling). |
| motoko/low_wasm_memory/README.md | Updates instructions from make test to bash test.sh. |
| motoko/low_wasm_memory/Makefile | Removes Makefile-based test target(s). |
| motoko/icrc2-swap/test.sh | Adds bash-based tests replacing the Makefile target (full swap flow). |
| motoko/icrc2-swap/README.md | Updates instructions from make test to bash test.sh. |
| motoko/icrc2-swap/Makefile | Removes Makefile-based deploy/test targets. |
| motoko/icrc2-swap/deploy.sh | Adds bash deploy script to replace make deploy for multi-step deployment. |
| motoko/icp_transfer/test.sh | Adds bash-based tests replacing the Makefile target (delta-based balance assertions). |
| motoko/icp_transfer/README.md | Updates instructions from make test to bash test.sh. |
| motoko/icp_transfer/Makefile | Removes Makefile-based test target. |
| motoko/hello_world/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/hello_world/Makefile | Removes Makefile-based test target. |
| motoko/hello_cycles/test.sh | Adds bash-based tests replacing the Makefile target (proxy + cycles). |
| motoko/hello_cycles/README.md | Updates instructions from make test to bash test.sh. |
| motoko/hello_cycles/Makefile | Removes Makefile-based test target. |
| motoko/flying_ninja/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/flying_ninja/README.md | Updates instructions from make test to bash test.sh. |
| motoko/flying_ninja/Makefile | Removes Makefile-based test target. |
| motoko/filevault/test.sh | Adds bash-based tests replacing the Makefile target (CRUD + cleanup for idempotency). |
| motoko/filevault/README.md | Updates instructions from make test to bash test.sh. |
| motoko/filevault/Makefile | Removes Makefile-based test target. |
| motoko/daily_planner/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/daily_planner/README.md | Updates instructions from make test to bash test.sh. |
| motoko/daily_planner/Makefile | Removes Makefile-based test target. |
| motoko/composite_query/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/composite_query/README.md | Updates instructions from make test to bash test.sh and updates top-up guidance. |
| motoko/composite_query/Makefile | Removes Makefile-based test/topup targets. |
| motoko/cert-var/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/cert-var/README.md | Updates instructions from make test to bash test.sh. |
| motoko/cert-var/Makefile | Removes Makefile-based test target. |
| motoko/canister_logs/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/canister_logs/README.md | Updates instructions from make test to bash test.sh. |
| motoko/canister_logs/Makefile | Removes Makefile-based test target. |
| motoko/canister_factory/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/canister_factory/README.md | Updates instructions from make test to bash test.sh and updates top-up guidance. |
| motoko/canister_factory/Makefile | Removes Makefile-based test/topup targets. |
| motoko/backend_only/test.sh | Adds bash-based tests replacing the Makefile target. |
| motoko/backend_only/README.md | Updates instructions from make test to bash test.sh. |
| motoko/backend_only/Makefile | Removes Makefile-based test target. |
| .github/workflows/who_am_i.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/vetkeys-password-manager.yml | Bumps dev-env images to 1.0.1. |
| .github/workflows/vetkeys-password-manager-with-metadata.yml | Bumps dev-env images to 1.0.1. |
| .github/workflows/vetkeys-encrypted-notes-app-vetkd.yml | Bumps dev-env images to 1.0.1. |
| .github/workflows/vetkeys-basic-vetkd.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/vetkeys-basic-timelock-ibe.yml | Bumps dev-env images to 1.0.1. |
| .github/workflows/vetkeys-basic-ibe.yml | Bumps dev-env images to 1.0.1. |
| .github/workflows/vetkeys-basic-bls-signing.yml | Bumps dev-env images to 1.0.1. |
| .github/workflows/threshold-schnorr.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/threshold-ecdsa.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/superheroes.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/send_http_post.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/send_http_get.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/random_maze.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/query_stats.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/pub-sub.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/parallel_calls.yml | Bumps dev-env images to 1.0.1 and switches to bash scripts for both jobs. |
| .github/workflows/low_wasm_memory.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/icrc2-swap.yml | Bumps dev-env images to 1.0.1 and switches to bash deploy.sh / bash test.sh. |
| .github/workflows/icp_transfer.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/hosting-unity-webgl-example.yaml | Bumps dev-env image to 1.0.1. |
| .github/workflows/hosting-static-website-example.yaml | Bumps dev-env image to 1.0.1. |
| .github/workflows/hosting-photo-storage-example.yml | Bumps dev-env image to 1.0.1. |
| .github/workflows/hosting-godot-html5-template-example.yml | Bumps dev-env image to 1.0.1. |
| .github/workflows/hello_world.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/hello_cycles.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/flying_ninja.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
| .github/workflows/filevault.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/daily_planner.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/composite_query.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/cert-var.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/canister_logs.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/canister_factory.yml | Bumps dev-env image to 1.0.1 and switches to bash test.sh. |
| .github/workflows/backend_only.yml | Bumps dev-env images to 1.0.1 and switches to bash test.sh. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add --query to all query function calls in who_am_i, hello_world, backend_only, flying_ninja (both Motoko and Rust) - Fix printf '%s' in threshold-ecdsa/test.sh (avoids treating canister output as a printf format string) - Add motoko/query_stats/test-stats.sh (missing file referenced in README) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ter call directly Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 123 out of 123 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
motoko/icrc2-swap/README.md:56
- README instructs running
make deploy, but this example no longer has a Makefile and the workflow usesbash deploy.sh. The deploy/test section and the explanatory text should referencebash deploy.shinstead ofmake deployso the documented commands match the repository state.
mbjorkqvist
left a comment
There was a problem hiding this comment.
Thanks @marc0olo! Just a couple of minor doc-only nits.
…lti-subnet.sh Workflow runs bash test-multi-subnet.sh; README should match. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There is no Makefile — deploy.sh is the entry point. Three stale 'make deploy' references updated to 'bash deploy.sh'. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
Updates all already-merged Motoko and Rust examples per the guidelines in PR #1422 (AGENTS.md update):
icp-dev-env-{motoko,rust,all}image versions to 1.0.1Makefiletest targets totest.shbash scripts121 files changed across 34 workflow files and ~33 example directories.
Changes per category
Image bumps (34 workflow files):
0.3.2/1.0.0→1.0.1for motoko, rust, and all images.Makefile → test.sh (33 examples): every migrated example's
Makefilereplaced by an executabletest.shbash script with identical logic. Notable special cases:motoko/icrc2-swap: deploy target extracted to a separatedeploy.sh(custom multi-step deploy with identities + token init args can't use plainicp deploy)motoko/parallel_calls:test-multi-subnet.shadded for the separate PocketIC multi-subnet test jobmotoko/basic_bitcoin: excluded — this example runs on the host runner (no container) due to Docker bind-mount requirements; it also has a pre-existing Wasm locals regression in icp-cli 1.0.0 (function with 2081 locals > IC limit of 2000). Tracked separately.Out of scope
motoko/basic_bitcoin: untouched, pre-existing regression unrelated to this PRTest plan
🤖 Generated with Claude Code