Changes for version 0.002.0 - 2026-10-23
- Security: an environment value is interpolated only once, so ${{ }} text from a context value (a commit message, say) is no longer evaluated again; a variable that refers to itself is an error (runner.env_cycle). A docker:// image is likewise interpolated once.
- Security: keep_logs refuses a log name or run id that is not a plain file name (runner.logs.bad_name).
- if: false, pre-if, post-if and fail-fast: false are honoured on Perl 5.36 and later.
- Warnings and errors go through a Log::Abstraction logger; App::Actions->new takes a logger argument. Progress and the summary stay on standard output. Log::Abstraction 0.41 is required.
- Documented the configuration Object::Configure adds (App__Actions config sections and environment variables).
- The cache and logs listings and a child process's error lines are translated.
- Windows: a missing program is status 255 and is no longer retried through cmd.exe.
- Bug fixes in Expression (re-entrant, booleans, negative numbers, quoted }}, format()), Workflow (matrix instances share no job data), Runner (continue-on-error under fail-fast), Steps, Containers, Images, Parallel, Process, Cache, Check, Schema, Action and the preflight's deferred images. Run errors no longer show a Perl source location, the caller's $@ is preserved, and invalid arguments are an App::Actions::Error (actions.invalid_arguments).
- Removed three unreachable messages.
- New tests: t/function.t (white-box), t/unit.t (black-box, against the POD) and t/changes.t; the fixture, pre-commit, regex and space-path tests were improved. New test dependencies: Test::Mockingbird, Test::Returns and Test::Memory::Cycle.
- META: https repository URL; non-standard keys removed.
- POD fixes.
Documentation
run a GitHub Actions workflow locally with Docker
check that Docker can run an App::Actions workflow
Modules
run GitHub Actions workflows locally
list the private routines of a package for Sub::Private
read the metadata of a local GitHub action
remember which Docker images action-run downloaded, and remove them
find out whether this computer can run workflows with Docker
run Docker commands for the workflow runner
an environment variable for a container, kept off the command line
an exception that carries a stable code
work out the value of a GitHub Actions ${{ }} expression
message catalogue and translator for App::Actions
the German message catalogue of App::Actions
the English message catalogue of App::Actions
the French message catalogue of App::Actions
the Chinese message catalogue of App::Actions
list and remove the job logs that action-run keeps
run other programs, the same way on Unix and Windows
plan and run a GitHub Actions workflow in Docker
start, check and remove a run's containers
work out, pull and track the images a run needs
run the jobs of one matrix beside each other
what a run tells its user at the end
run the steps of one job in its container
helpers shared by the parts of the runner
the env context that resolves variables when they are read
check that a document matches a small JSON schema
the error for a document that does not match its schema
helpers shared by the App::Actions document readers
parse and expand a GitHub Actions workflow