Run GitLab Runner on AIX 7.2 and 7.3 (ppc64), built from the unmodified upstream release.
aix-runner is an independent project. It is not part of, or endorsed or supported by, GitLab. Please report problems here, not to GitLab's issue tracker.
Why. GitLab doesn't ship the runner for AIX, and AIX support is not on its roadmap. The runner itself builds for AIX; four of its dependencies don't. aix-runner patches those dependencies and publishes the binary, so an AIX host can run GitLab CI jobs with the shell executor like any other runner.
build.shtakes the upstream gitlab-runner tag; the runner's own code is not changed.patch_deps.pypatches four dependencies that don't compile for AIX.- Go cross-compiles it with
GOOS=aix GOARCH=ppc64 CGO_ENABLED=0. A daily CI build of the latest upstream tag catches upstream changes early.
Details: docs/how-it-works.md.
Experimental and free to use. CI on Linux builds the latest upstream release every day; runs on AIX are tested by hand, not in CI.
| Platform | Status |
|---|---|
| AIX 7.3, shell executor | Tested with 19.5.1 against gitlab.com: register, jobs, artifacts, local cache, git clone, cancel; not in CI |
| AIX 7.2 | Not tested yet; same binary, should work |
| AIX 7.1 and older | Not supported: Go requires AIX 7.2 |
| Docker and Kubernetes executors | Not applicable on AIX |
Running Jenkins agents on AIX 7.1, Solaris or HP-UX instead? See Agent8.
On the AIX host (POWER8 or newer), with git and bash from the AIX Toolbox. Download gitlab-runner-aix-ppc64 and sha256sums.txt from the latest release; AIX has no curl or wget by default, so download them elsewhere and scp them over, or use curl from the Toolbox. Create the runner and its token in GitLab first (Settings > CI/CD > Runners).
sha256sum -c sha256sums.txt # or: openssl dgst -sha256 gitlab-runner-aix-ppc64
mv gitlab-runner-aix-ppc64 gitlab-runner && chmod +x gitlab-runner
mkdir -p "$HOME/gitlab-runner"
./gitlab-runner register --non-interactive \
--config "$HOME/gitlab-runner/config.toml" \
--url https://gitlab.example.com --token "$RUNNER_TOKEN" \
--executor shell --env "PATH=/opt/freeware/bin:/usr/bin:/bin"
./gitlab-runner run --config "$HOME/gitlab-runner/config.toml" \
--working-directory "$HOME/gitlab-runner"Keep the --env PATH=... line: the Toolbox installs git and bash under /opt/freeware/bin, and jobs fail to clone without it. Use an absolute --config path, because the runner reloads the file from that path.
More in docs/install.md: running in the background, checking where a binary came from, and building it yourself.
- Cancelling a job takes about 20 seconds: the runner learns about the cancel at its next status update for the job. The job's processes are then killed.
- Not tested yet: AIX 7.2,
gitlab-runner installas a system service, distributed (S3/GCS) cache, long-running stability. - The binary is about 150 MB, because the Docker and Kubernetes executors are compiled in even though they have nothing to talk to on AIX.
When you report a problem, include oslevel -s, ./gitlab-runner --version and the relevant lines of the runner log.
MIT, like GitLab Runner itself.
This product is based on GitLab software. GitLab is a trademark of GitLab Inc. This project is not affiliated with or endorsed by GitLab Inc.