Breaking changes
- Invalid option values now fail the step.
tail,log-output,log-output-resumeandlog-output-ifused to match on substrings, solog-output: no-stderrquietly enabled stderr and a typo likesdtoutquietly disabled logging entirely. The same applied towait-for, whereabc123silently became a 123ms timeout. These are now validated exactly. If a workflow of yours currently passes with a typo'd value, it will start failing — that value was never doing what it looked like. - Backgrounded processes are stopped during post-run. They receive
SIGTERM, getshutdown-grace(default10s) to exit cleanly, and anything they print on the way down is captured in the logs. Setshutdown: falsefor the previous behavior. - Logs are written under
RUNNER_TEMPinstead of the workspace, so an automated commit can no longer sweep them into your repository. Use the newstdout-log/stderr-logoutputs to find them. - Runs on the
node24runtime.
Fixes
waitwas passed as an argument to your last command (#210).core.getInput()strips trailing whitespace, so the shell builtin appended to your commands became an argv of whatever ran last —npm run previewbecamenpm run preview wait. Affected every multi-linerun:whose final command wasn't backgrounded.- A failed background process is now reported immediately rather than at the readiness timeout. A bare
waitblocks until every job exits and discards their statuses, so one service dying on startup was invisible until the timeout this action exists to prevent. Jobs are now awaited one at a time. - Backgrounded processes are no longer left running (#205).
- Log files no longer land in the workspace (#199), and their paths are published as outputs (#193).
log-output-if: early-exit— the spellingaction.ymlhad advertised since the first release — was rejected outright. Both spellings now work.- Post-run no longer prints the environment when debug logging is enabled.
Improvements
- New inputs:
shutdown,shutdown-grace. New outputs:stdout-log,stderr-log. - Durations accept terse and verbose spellings (
30s,30 seconds,1h30m45s). - Production dependencies reduced to three, with no known advisories.
- The published bundle is now committed and verified against its sources on every pull request.
- Tests run on macOS as well as Linux.
See the README for the full upgrade notes.
Thanks
This release is almost entirely other people's bug reports. Several sat open for a long time.
- @OlegYch reported #210, and pointed at the exact line in
index.js. That's most of the diagnosis. - @rdicroce reported #199 after log files were accidentally committed to a repository by an automated release workflow.
- @piranna reported #205, correctly noting nothing ever killed the backgrounded processes.
- @vera reported #187, the post-job
ENOENTfailure. Now covered by a regression test. - @JordanLongstaff reported #206 (Node 20 deprecation), and @marcodicro-dp for following up on it.
- @riderx (#207), @runlevel5 (#208, #209) and @Lucas127128 (#211) all sent Node 24 upgrades. #207 was the closest to complete, and #209's ESM work remains valuable and is still on the table.
Sorry it took a while.