Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 22:55
· 39 commits to main since this release
f6085f4

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.

First release. An SGI running IRIX 6.5 registers as a self-hosted runner and
executes real workflow jobs: checkout, build, artifacts, and results reported
back to GitHub.

Added

  • Runner registration and configuration for a repository or an organisation,
    persisted to .runner, .credentials and .rsakey
  • Listener: OAuth client assertions, agent session, long poll, message
    decryption, and the v2 broker migration github.com now requires
  • Job execution: run: steps under bash or sh, per-step status and timing,
    full job and step logs, secret masking, and job cancellation
  • Live step state during a job, through the results service step update API
  • Native actions/checkout against the git binary
  • Native actions/upload-artifact and actions/download-artifact
  • Step confinement: CPU, address space, file size and descriptor limits, an
    IRIX process cap against fork bombs, orphan reaping, and an optional chroot
    with a uid drop when the runner is started as root
  • Self-contained n32 binary needing only libc.so.1, libpthread.so and
    libm.so, with OpenSSL linked statically
  • runner selftest for diagnosing TLS, certificate and clock problems
  • Release pipeline that builds on SGI hardware and publishes a tarball
  • Trust roots shipped alongside the binary, found automatically, so the runner
    works on a machine with no SGUG-RSE installed
  • Build system for GCC 9.2 with a MIPSPro c99 compile gate, and unit tests
    that run on both Linux and IRIX

Fixed

  • Steps now run under -e, and bash steps under -o pipefail, matching
    GitHub's documented defaults. Previously only the last command in a
    multi-line run: body determined the step's result, so any check followed by
    another command was not a gate at all.
  • A run: body containing ${{ }} is now rejected with an explanation.
    Previously it produced an empty script that was reported as succeeded.
  • Secret redaction no longer writes past its buffer when a mask is shorter than
    three characters.

Known limitations

  • No expression evaluator, so ${{ }} is unavailable. Use the $GITHUB_*
    shell variables. Workflow, job and step env: blocks are ignored.
  • No JavaScript actions, no container jobs, no service containers. Anything
    outside the three native handlers fails with a clear error.
  • Logs appear when a step finishes rather than streaming as it runs.
  • chroot confinement applies only when the runner is started as root, and is
    untested.