Changes for version 0.002.1 - 2026-10-25
- t/regex.t checks that tokenizing four times the expression takes less than eight times as long, rather than holding it to two seconds, which a slower or busy machine went past.
- t/unit.t no longer depends on which of two parallel jobs finishes first when checking a result that cannot be written.
- t/function.t's test that _system on Windows runs a program given by its path no longer empties PATH for it, which kept Perl from starting on GitHub's Windows runners.
- action-run cache no longer reports an image as missing when Docker has it but gives no size for it, and --prune removes such an image instead of forgetting it (which left it on the daemon and out of the record).
- if: false and fail-fast: false work on Perl 5.36 again: each matrix instance's copy of its job was made with Storable, whose version in 5.36 (3.26) turns a core boolean into an empty string, which ran the job.
- A run that uses a kept image without pulling it again updates the image's last use in the record (App::Actions::Cache->touch), so "action-run cache --prune --older-than" no longer removes an image that runs still use. An image the record does not hold is still never added. Jobs run in parallel report the images they used too.
- Added t/integration.t: end-to-end tests across the modules, with unwritable and unsearchable directories, an unreachable daemon, slow and failing pulls, and malformed answers and files. It needs Test::Permissions and Test::Without::Module.
- YAML::PP 0.38 is required: older versions do not load true and false as Perl's own booleans, which if: false and fail-fast: false rely on from Perl 5.36.
- A pull that fails while a job runs is reported in the chosen language (App::Actions::Error runner.image.pull_failed), as the preflight's already was.
- The core modules the tool and its tests use are all declared as prerequisites.
- The tests pass from a checkout with CRLF line endings (t/changes.t, t/self_test.t), t/function.t no longer fails now and then when a second passes during the mount check, and its fork() tests no longer end the test on Windows, where Process and parallel jobs do not fork.
- t/self_test.t runs the fake daemon's steps with the Perl under test: where the first perl on PATH was another one, without the tool's dependencies, the second workflow fell back to cpanm and failed (a CPAN Testers report on Perl 5.44.0). Fixes https://matrix.perl-magpie.org/results/fbe62b68-cfbc-11f1-b73e-b510376a2ca8
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