Skip to content

v2.0.0

Latest

Choose a tag to compare

@jmealo jmealo released this 25 Jul 21:00
Immutable release. Only release title and notes can be modified.
1f5e5fa

Breaking changes

  • Invalid option values now fail the step. tail, log-output, log-output-resume and log-output-if used to match on substrings, so log-output: no-stderr quietly enabled stderr and a typo like sdtout quietly disabled logging entirely. The same applied to wait-for, where abc123 silently 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, get shutdown-grace (default 10s) to exit cleanly, and anything they print on the way down is captured in the logs. Set shutdown: false for the previous behavior.
  • Logs are written under RUNNER_TEMP instead of the workspace, so an automated commit can no longer sweep them into your repository. Use the new stdout-log / stderr-log outputs to find them.
  • Runs on the node24 runtime.

Fixes

  • wait was 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 preview became npm run preview wait. Affected every multi-line run: whose final command wasn't backgrounded.
  • A failed background process is now reported immediately rather than at the readiness timeout. A bare wait blocks 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 spelling action.yml had 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 ENOENT failure. 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.