Skip to content

v4.0.0

Choose a tag to compare

@kurok kurok released this 02 Jul 21:20
453ef2e

A capability wave across cost, reliability, reach, and toil — 10 features, each shipped as its own PR (#50#59).

⚠️ Breaking changes

  • ec2:CreateTags is now always required. Every launched instance is stamped with the action's signature tags (used by the cleanup reaper). Grant ec2:CreateTags with condition ec2:CreateAction = RunInstances, or RunInstances will be denied. Previously only needed with aws-resource-tags. (#42, #45)
  • cleanup-on-start-failure defaults to true. A runner that fails to bootstrap/register now has its console captured and is terminated instead of left running after a registration timeout. Set false to keep the old behavior. (#41)
  • The root EBS volume for encrypt-ebs / volume-* now always sets DeleteOnTermination: true. (#44)

Highlights

Reliability

  • Bootstrap diagnostics: per-phase phone-home tags, fast-fail naming the failing step, console-output capture (token redacted), cleanup-on-start-failure. (#41)
  • Orphan protection: max-lifetime-minutes TTL self-destruct + a mode: cleanup reaper (max-age-minutes, dry-run). (#42)
  • Capacity resilience: comma-separated ec2-instance-type / subnet-id fallback across AZs and types; outputs instance-type-used, subnet-id-used. (#40)

Cost

  • Spot instances: market-type: spot with spot-fallback / spot-max-price; output market-type-used. (#39)
  • ARM64/Graviton: architecture: arm64 with AMI-arch fail-fast validation. (#43)
  • Warm pools: reuse: stop reuses stopped instances for much faster starts (reuse-pool-tag, reuse-max-cycles). ⚠️ carries disk state between jobs — unsafe for public/untrusted-PR repos. (#48)

Reach & toil

  • Root volume config: volume-size / volume-type / volume-iops / volume-throughput. (#44)
  • Multi-runner batches: count (+ allow-partial) for matrix builds; output ec2-instance-ids. (#45)
  • Pluggable bootstrap: pre-runner-script + user-data-template (Ubuntu example included) — no more forking for other distros. (#46)
  • Automated runner-version bumps: scripts/bump-runner.js + a weekly PR workflow. (#47)

IAM additions

Base policy also needs ec2:DescribeTags and ec2:GetConsoleOutput. The runner's own instance role may optionally get self-scoped ec2:CreateTags for bootstrap phone-home.


Pin namecheap/ec2-github-runner@v4 for the latest v4 release, or @v4.0.0 to pin exactly. See CHANGELOG.md and the README.

Full changelog: v3.0.2...v4.0.0