v0.2.0
Native GitHub Actions runner for SGI IRIX 6.5.22 and later, MIPS n32.
Requires IRIX 6.5.22+ on an R4000 or later CPU. The binary needs only
libc.so.1, libpthread.so and libm.so, all IRIX base. cert.pem
ships alongside it and is found automatically; no SGUG-RSE needed to
run. git, zip and unzip are needed only for uses: steps.
Stock IRIX tar cannot decompress, so extract with:
gzip -dc irix-actions-runner-*.tar.gz | tar xvf -
Built and tested on IRIX 6.5.30m. Earlier 6.5.x releases and other SGI
models are expected to work and are untested. See BUILD-INFO in the
tarball for exactly what was built and on what.
If the first connection fails, run ./runner selftest: an undisciplined
clock and an expired CA bundle are the two usual causes.
Added
- Live console output. Step output now appears in the UI while the step is
still running, over the WebSocket atFeedStreamUrl, which is what the
official runner uses. Best effort: a failed feed is abandoned and the
uploaded log remains authoritative. - Logs of any size. Output is streamed in 2 MB blocks to an append blob
instead of being held whole and sent at step end, so a long build no longer
grows the runner's memory in step with its own output.
Fixed
- Steps now run under
-e, and bash steps under-o pipefail, matching
GitHub's documented defaults. Only the last command in a multi-linerun:
body used to decide the step's result, so any check followed by another
command was not a gate. - A
run:body containing${{ }}is rejected with an explanation instead of
producing an empty script that was reported as succeeded. - Secret redaction no longer writes past its buffer for a mask shorter than
three characters. - Cancellation and the step deadline were only checked when the output poll
timed out, so a step printing continuously could not be cancelled and could
not time out. - The whole-job log is accumulated as steps run rather than stitched from every
step's buffer at job end, so a job no longer has to hold all of its output at
once. docs/protocol.mdclaimed the blob API was the live tailing route. It is
not; it is the durable log, and the live tail is a separate socket.
Changed
- Unit tests run on Linux for every pull request.
- The binary is pinned to MIPS III explicitly rather than inheriting it from
the compiler default, and the release asserts it.