GitHub Actions agent skill - helps create, review, and optimize workflows with up-to-date action versions and best practices
100
100%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Complete reference for GitHub Actions runners.
| Label | vCPUs | RAM | Storage | OS |
|---|---|---|---|---|
ubuntu-latest | 4 | 16 GB | 14 GB | Ubuntu 24.04 |
ubuntu-24.04 | 4 | 16 GB | 14 GB | Ubuntu 24.04 |
ubuntu-22.04 | 4 | 16 GB | 14 GB | Ubuntu 22.04 |
macos-latest | 3 (M1) | 7 GB | 14 GB | macOS 14 |
macos-14 | 3 (M1) | 7 GB | 14 GB | macOS 14 (Sonoma) |
macos-13 | 4 | 14 GB | 14 GB | macOS 13 (Ventura) |
windows-latest | 4 | 16 GB | 14 GB | Windows Server 2022 |
windows-2022 | 4 | 16 GB | 14 GB | Windows Server 2022 |
windows-2019 | 4 | 16 GB | 14 GB | Windows Server 2019 |
| Label | vCPUs | RAM |
|---|---|---|
ubuntu-latest-4-cores | 4 | 16 GB |
ubuntu-latest-8-cores | 8 | 32 GB |
ubuntu-latest-16-cores | 16 | 64 GB |
ubuntu-latest-32-cores | 32 | 128 GB |
ubuntu-latest-64-cores | 64 | 256 GB |
Similar patterns for macos-* and windows-*.
| Label | Architecture |
|---|---|
ubuntu-24.04-arm | ARM64 |
macos-14 | ARM64 (M1) |
Available for ML workloads. Contact GitHub for access.
jobs:
build:
runs-on: ubuntu-latestjobs:
build:
runs-on: ubuntu-22.04 # Pin to specific versionjobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}jobs:
build:
runs-on: self-hosted
gpu-job:
runs-on: [self-hosted, linux, gpu]
specific:
runs-on: [self-hosted, linux, x64, production]Access runner information:
steps:
- run: |
echo "Runner name: ${{ runner.name }}"
echo "OS: ${{ runner.os }}" # Linux, Windows, macOS
echo "Arch: ${{ runner.arch }}" # X64, ARM64
echo "Temp: ${{ runner.temp }}"
echo "Tool cache: ${{ runner.tool_cache }}"# Download
curl -o actions-runner-linux-x64.tar.gz -L \
https://github.com/actions/runner/releases/download/v2.XXX.X/actions-runner-linux-x64-2.XXX.X.tar.gz
# Extract
tar xzf actions-runner-linux-x64.tar.gz
# Configure
./config.sh --url https://github.com/org/repo --token XXXXXX
# Run
./run.sh
# Or install as service
sudo ./svc.sh install
sudo ./svc.sh startDefault labels:
self-hostedlinux, windows, macosx64, arm, arm64Custom labels:
runs-on: [self-hosted, linux, gpu, cuda-11]Organize runners and control access:
jobs:
production:
runs-on:
group: production-runners
labels: [linux, x64]Run entire job in a container:
jobs:
build:
runs-on: ubuntu-latest
container:
image: node:20-alpine
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
NODE_ENV: production
ports:
- 80
volumes:
- /data:/data
options: --cpus 2 --memory 4gjobs:
test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:7
ports:
- 6379:6379Access services:
steps:
- run: |
# In container job, use service name
psql -h postgres -U postgres
# In non-container job, use localhost
psql -h localhost -p 5432 -U postgres# Fast builds: use Linux
runs-on: ubuntu-latest
# macOS/iOS builds: use macOS
runs-on: macos-latest
# Windows-specific: use Windows
runs-on: windows-latest# Heavy builds benefit from more cores
runs-on: ubuntu-latest-8-cores- uses: actions/cache@v5
with:
path: ~/.npm
key: npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}strategy:
fail-fast: false
max-parallel: 4 # Limit concurrent jobs
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]- run: df -h- run: |
node --version
python --version
docker --version- run: |
echo "Runner: ${{ runner.name }}"
echo "OS: ${{ runner.os }}"
echo "Arch: ${{ runner.arch }}"
uname -a
cat /etc/os-release || trueFor self-hosted runners, check:
_diag/ directory for logssvc.sh status for service statusskills
actionista
agents
references