Runner Image and Pre-installed Tools
This document is the complete reference for AtomGit Action Runner tag system, resource specifications, and pre-installed tool list, as well as configuration instructions for self-hosted Runners.
6.1 Runner Tag System
AtomGit Action Runner uses a three-part tag format: {os-version},{arch},{flavor}
| Tag Segment | Description | Example Values |
|---|---|---|
| os-version | Operating System and Version | ubuntu-24, windows-2022 |
| arch | CPU Architecture | x64, arm64 |
| flavor | Resource Specification | slim, small, medium, large, xlarge, 2xlarge |
Common Tag Examples:
| Tag | Description |
|---|---|
{ubuntu-24,x64,small} | Ubuntu 24.04 / x64 / 2 cores 8G 50G |
{ubuntu-24,x64,medium} | Ubuntu 24.04 / x64 / 4 cores 16G 100G |
{ubuntu-24,x64,large} | Ubuntu 24.04 / x64 / 8 cores 32G 200G |
{ubuntu-24,arm64,medium} | Ubuntu 24.04 / ARM64 / 4 cores 16G 100G |
6.2 Resource Specification Table
| Specification | CPU | Memory | System Disk | Use Case |
|---|---|---|---|---|
slim | 1 core | 4GB | 20GB | Lightweight checks, lint, small scripts |
small | 2 cores | 8GB | 50GB | Regular CI builds, unit tests |
medium | 4 cores | 16GB | 100GB | Medium project builds, integration tests |
large | 8 cores | 32GB | 200GB | Large project builds, performance tests |
xlarge | 16 cores | 64GB | 500GB | Large-scale parallel builds, heavy computing |
2xlarge | 32 cores | 128GB | 1TB | Extremely heavy computing, big data processing |
Specification Selection Recommendation: The default recommendation is
smallspecification (2 cores 8G 50G), which can meet most CI/CD scenarios. Choose higher specifications only when there are clear performance requirements.
6.3 Pre-installed Tools on Ubuntu 24.04
| Category | Tool | Version/Description |
|---|---|---|
| Languages and Runtimes | Python | 3.10, 3.11, 3.12 |
| Node.js | 18, 20, 22 | |
| Go | 1.21, 1.22, 1.23 | |
| Java (JDK) | 8, 11, 17, 21 | |
| Ruby | 3.1, 3.2, 3.3 | |
| PHP | 8.1, 8.2, 8.3 | |
| Rust | latest stable (via rustup) | |
| .NET | 6.0, 7.0, 8.0 | |
| Build Tools | Maven | 3.9.x |
| Gradle | 8.x | |
| npm | bundled with Node.js | |
| pip | bundled with Python | |
| yarn | 1.22+ | |
| pnpm | 8.x | |
| CI Tools | Git | 2.x |
| curl / wget | latest | |
| jq | 1.7+ | |
| yq | 4.x | |
| shellcheck | 0.9+ | |
| Cloud Tools | kubectl | latest |
| helm | 3.x | |
| aws-cli | 2.x | |
| Package Management | apt | Ubuntu 24.04 default |
| brew | Linuxbrew (optional) |
6.4 Official Resource Pool Image OS Version Support Matrix
| OS Definition in YAML | OS Source | Kernel | Architecture | Package Manager | Lifecycle |
|---|---|---|---|---|---|
ubuntu-24.04 | Ubuntu 24.04.x LTS | 6.8+ | x64 / arm64 | apt / dpkg | 2029-04 EOL |
euler-25.03 | openEuler 25.03 LTS | 6.6+ | x64 / arm64 | dnf / rpm | 2030-xx EOL |
ubuntu-latest | → ubuntu-24.04 | Same as above | Same as above | Same as above | Follows latest GA |
euler-latest | → euler-25.03 | Same as above | Same as above | Same as above | Follows latest GA |
OS can also be described using
ubuntu-latest, where 'latest' refers to the current latest supported OS version. Currently, only one version is supported per OS type, and more will be added gradually.
6.4.1 Basic System Tools
| Tool | Ubuntu (apt) | openEuler (dnf) | Purpose |
|---|---|---|---|
| locales / glibc-all-langpacks | locales | glibc-all-langpacks | UTF-8 (en_US.UTF-8) support |
| sudo | sudo | sudo | Privilege escalation for CI tasks |
| git | git | git | Code pull / commit |
| curl | curl | curl | HTTP requests |
| wget | wget | wget | File download |
| unzip | unzip | unzip | ZIP decompression |
| zip | zip | zip | Create ZIP packages |
| tar | tar | tar | Archiving |
| ca-certificates | ca-certificates | ca-certificates | HTTPS trust chain |
| gnupg | gnupg | gnupg | GPG verification |
| jq | jq | jq | JSON parsing |
| bash-completion | bash-completion | bash-completion | Command completion |
| openssh-client / openssh-clients | openssh-client | openssh-clients | SSH client |
6.4.2 Programming Language Runtimes
| Runtime | Ubuntu Version | Euler Version | Path |
|---|---|---|---|
| Python | python3 (system 3.12) | python3 (system) | System PATH |
| pip | python3-pip | python3-pip | System PATH |
| Java JDK | openjdk-17-jdk | java-17-openjdk-devel | System PATH |
| Node.js | v16.20.2 (Gallium LTS) | v16.20.2 (Gallium LTS) | ${HOME}/runner/externals/node16 |
6.4.3 Compilation Toolchain
| Tool | Ubuntu (apt) | openEuler (dnf) | Purpose |
|---|---|---|---|
| C/C++ Compiler | build-essential | gcc gcc-c++ make | Provides gcc / g++ / make |
| Build Tools | cmake | cmake | C++ build |
| SSL Development Libraries | libssl-dev | openssl-devel openssl-libs | OpenSSL headers/libraries |
| Cryptographic Libraries | libsodium-dev | libsodium-devel | NaCl cryptography |
6.4.4 Container and Cloud Native
| Tool | Version/Source | Installation Location | Purpose |
|---|---|---|---|
| Kaniko | v1.23.2 (gcr.io/kaniko-project/executor) | /usr/local/bin/kaniko | Build container images without daemon |
| Docker CLI | Latest version (download.docker.com) | /usr/bin/docker | Call Docker engine (backup path) |
| kubectl | Stable version (dl.k8s.io) | /usr/local/bin/kubectl | K8s cluster management |
6.5 Self-hosted Runner (self-hosted)
In addition to cloud-hosted Runners, AtomGit Action supports self-hosted Runners, specified using the self-hosted tag combination in runs-on:
runs-on:
- self-hosted
- custom-label # Custom label
Self-hosted Tag Combination Rules:
- Must include the
self-hostedtag - Can add custom
labels(such asgpu,high-mem,arm64, etc.) - Runner Matching Rules: The
runs-ontag list of the Job must be a subset of the Runner's registered tags
# Matches only self-hosted + linux Runners
runs-on: [self-hosted, linux]
# Matches specific specifications
runs-on: [self-hosted, x64, large]