Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 15 Mar 15:55
· 209 commits to main since this release

What's New

Nix Integration

  • Auto-detect flake.nix / shell.nix and wrap run: steps with nix develop --command or nix-shell --run
  • --nix, --no-nix, --nix-packages flags
  • ACTRUN_NIX=false env var to disable
  • Works transparently — workflows written for ubuntu-latest run locally with nix-managed toolchains

Configuration File (actrun.toml)

  • actrun init generates config with auto-detected local toolchains (node, python, go, rustc)
  • local_skip_actions — skip setup actions and use host/nix toolchain instead
  • Skipped steps are logged before execution: skip build/Setup Node (actions/setup-node@v4)
  • Unknown keys produce warnings to catch typos
  • See docs/advanced-workflow.md for full reference

Affected Runs (--affected)

  • turborepo/nx-style incremental execution
  • Configure file patterns per workflow in actrun.toml:
    [affected.ci.yml]
    patterns = ["src/**", "*.toml"]
  • Compares git diff since last successful run — skips if no matching files changed
  • Glob patterns: src/**, *.rs, **/*.ts, src/*

Retry Failed Runs (--retry)

  • Re-run only failed jobs, skip already-succeeded ones
  • actrun ci.yml --retry after fixing a test failure saves rebuild time

Container Runtime Selection

  • --container-runtime flag: docker, podman, container (Apple), lima, nerdctl
  • Configurable in actrun.toml: container_runtime = "podman"
  • Lima support via auto-generated wrapper script

Doctor Improvements (actrun doctor)

  • Validates actrun.toml settings
  • Checks that skipped setup actions have local tool equivalents
  • Verifies container runtime binary exists
  • Shows nix environment detection status

Other Changes

  • Third-party action trust prompt with --trust flag
  • Recursive scanning of composite actions and reusable workflows for trust prompt
  • YAML --- document separator compatibility
  • Action input env: support hyphens and resolve ${{ }} defaults
  • package-manager-cache fallback for setup-node cache input
  • Checkout repository/filter inputs, setup-node architecture input
  • timeout-minutes, push.tags, run-name, pull_request trigger, environment

Examples

  • 15-nix-flake.yml — flake.nix auto-detection
  • 16-nix-shell.yml — shell.nix auto-detection
  • 17-nix-packages.yml — ad-hoc nix packages
  • 18-nix-rust.yml — Rust with nix
  • 19-nix-python-uv.yml — Python + uv with nix
  • 20-nix-no-nix.yml — nix disabled

Full Changelog: v0.4.0...v0.5.0