v2.77.1
Binaries and the merged-pull-request list are on the GitHub releases page.
This release fixes four problems that appear when a lane runs several jobs at once on one runner. Plans without lanes, and lanes of one job, were not affected by the last three.
A re-run job's success is seen
gh run rerun --failed resumes one execution: orun run --lane … --retry
re-opens the lane's failed jobs. A job re-opened that way and then passed was
still read as failed, so a lane in a later environment waiting on it kept
waiting until its 60-minute limit. orun now reads the re-open
(state.job.retried) the way the platform does.
A completed job is not "taken over"
A job's heartbeat kept running after the job reported its result, while it
ran post-steps and printed its output. The platform answers every heartbeat
for a finished job with lease_lost, and orun printed
↻ lease lost on <job> — another runner has taken it over and cancelled the
job's remaining work. The heartbeat now stops when the job reports its result.
Tool installers no longer race
Jobs on one runner share the tool cache. Two actions/setup-node steps
installing the same Node version at once could leave one job with a
half-written install (ENOENT … bin/npm) or running a node binary still
being written (text file busy). Actions whose name says setup
(actions/setup-node, pnpm/action-setup, hashicorp/setup-terraform, …)
now run one at a time per tool cache; the second finds the first's install
and reuses it.
A failed job's log is printed
With several jobs in flight, a lane prints each job's step groups when the job ends. A job that failed a step printed nothing of its own, its failing step included. It now prints its steps, the error annotation and its footer.