Image Tests
Test the combined ansible-epic container images (base and web) —
local content and access-mode checks by default, with optional full Coder
workspace and cloud standalone integration tiers.
Invoke by asking Claude (e.g. "test the latest container images") or with
/image-tests. Optional arguments: a version tag (test that build instead
of latest), full (add Tier 3), quick (local tiers only), or standalone
(add Tier 4).
When to use
After building the images, before promoting a build or cutting latest over to
a new version, or any time you need to confirm the images are sound. If you pass
neither full nor quick, the skill runs the local tiers and then asks whether
to also run the workspace-integration tier (which creates real infrastructure).
What it does — the tiers
| Tier | Scope | Cost |
|---|---|---|
| 1–2u (default) | Local, scripted: image content (venv/SDKs/pins/collections/roles/CLIs, OCI labels + release stamp, size guards), access modes (SSH, web HTTP, tunnel smoke, ssh-agent), and the full user-setup matrix | ~15 min, no credentials |
3 (full) |
Coder workspace integration on aws-dev-container and azure-dev-container — venv activation, vault chain, inventory, live Linux/Windows pings |
~15–25 min, creates real workspaces |
4 (standalone) |
Cloud standalone harness — the customer path on real EFS / Azure Files SMB via the standalone-test templates | ~20–30 min, real infra; only when explicitly asked |
The local tiers all live in scripts/test-images.sh — the same script the
Build Container Images workflow runs between build and push, so any build that
reached GHCR already passed them. The skill runs the script rather than
re-deriving checks by hand, then adds a couple of manual extras (a real-token
gh round-trip, and the interactive tunnel login as a smoke test).
Safety & cleanup
Every container and workspace the run creates is named imgtest-<thing>-<runid>,
and the skill guarantees cleanup — even on failure it removes every
imgtest-* container it created and deletes every workspace it created. It never
touches a workspace whose name doesn't start with imgtest- or that another
user owns.
What you get
A markdown table — one row per check, columns Tier | Check | Result | Notes — plus the image tag and digest tested, an overall verdict, and any tier that was skipped (with the reason).
Reference
The human-readable test matrix and per-check meanings: Container Testing. How the images are built and promoted: Containers.