Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 15:24
· 37 commits to main since this release

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 at FeedStreamUrl, 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-line run:
    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.md claimed 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.