CI/CD runners with comprehensive Node & Python coverage - LTS to latest https://github.com/tcpipuk/act-runner
Find a file
Tom Foster f2fe27c5b8
Some checks failed
Build Runner Images / Prepare Build (push) Successful in 57s
Build Runner Images / Build Ubuntu Latest (push) Successful in 18s
Build Runner Images / Build Ubuntu Previous (push) Successful in 18s
Build Runner Images / Build Ubuntu Rolling (push) Successful in 15s
Build Runner Images / Build Fedora Latest (push) Successful in 18s
Build Runner Images / Build Fedora Previous (push) Successful in 16s
Build Runner Images / Build Fedora Rawhide (push) Successful in 17s
Build Runner Images / Build Debian Sid/Unstable (push) Successful in 15s
Build Runner Images / Build Debian Stable (push) Successful in 35s
Build Runner Images / Build Ubuntu Latest Python 3.13 (push) Failing after 17s
Build Runner Images / Build Debian Oldstable (push) Successful in 1m54s
Build Runner Images / Build Ubuntu Previous Python 3.13 (push) Failing after 36s
Build Runner Images / Update README if needed (push) Successful in 3s
Build Runner Images / Mirror Images to GHCR (push) Failing after 33m33s
fix(ci): pass UBUNTU_VERSION to Python variant builds
Ubuntu Python variant builds were failing to locate Python 3.13 packages
because UBUNTU_VERSION was not being passed as a build argument, causing
cache mount ID mismatch with the base Ubuntu build that includes deadsnakes PPA.
2025-09-09 22:52:47 +01:00
.forgejo fix(ci): pass UBUNTU_VERSION to Python variant builds 2025-09-09 22:52:47 +01:00
docker fix(docker): remove /var/lib/apt cache mounts to prevent build conflicts 2025-09-09 21:53:00 +01:00
docs refactor(ci): unify workflows and simplify directory structure 2025-09-07 10:50:54 +01:00
.gitignore feat(build): add multi-architecture support for all images 2025-08-28 17:10:03 +01:00
.markdownlint.yaml ci(config): add markdown linting and enforce conventional commits 2025-08-28 10:20:40 +01:00
.pre-commit-config.yaml feat(ci): add Fedora 42 runner support with separate build workflows 2025-08-29 15:51:30 +01:00
LICENCE Initial commit: ACT runner images for Forgejo Actions 2025-08-21 22:03:02 +01:00
README.md feat(docker): add Debian support to ACT runner images 2025-09-08 22:23:08 +01:00

ACT Runner Images

Production-ready runner images for Forgejo Actions and ACT with comprehensive language support and nightly updates.

Note

Images are built nightly on my Forgejo instance and automatically mirrored to GitHub Container Registry for optimal CDN performance. Both ghcr.io/tcpipuk/act-runner and git.tomfos.tr/tom/act-runner should be identical multi-architecture images supporting amd64, arm64, ppc64le, and s390x.

Usage examples

GitHub Actions:

jobs:
  test:
    runs-on: ubuntu-latest
    container: ghcr.io/tcpipuk/act-runner:ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: python --version
      - run: node --version

ACT:

act -P ubuntu-latest=ghcr.io/tcpipuk/act-runner:ubuntu-latest

Ubuntu images

View all available tags and versions →

Ubuntu Version Alias Tag Node.js Python Versions Available
25.04 (Development) ubuntu-rolling 24/22 3.13
24.04 LTS (Current) ubuntu-latest 24/22 3.12, 3.13
22.04 LTS (Previous) ubuntu-previous 22/20 3.10, 3.13

Note: Italicised versions are the native Python for each Ubuntu release. Non-native versions use the latest stable Python (3.13) from deadsnakes PPA.

Fedora images

View all available tags and versions →

Fedora Version Alias Tag Node.js Python Versions Available
Rawhide (Development) fedora-rawhide 24/22 3.14
42 (Current) fedora-latest 24/22 3.13
41 (Previous) fedora-previous 22/20 3.13

Debian images

View all available tags and versions →

Debian Version Alias Tag Node.js Python Versions Available
13 (Trixie - Testing) debian-testing 24/22 3.13
13 (Trixie - Stable) debian-latest 24/22 3.13
12 (Bookworm - Oldstable) debian-oldstable 22/20 3.11

Note: Debian images use only the native Python version for each release, providing better system integration than external PPAs.

Why these images?

  • Wide compatibility - Works with Forgejo Actions, Gitea Actions, and ACT
  • Multi-architecture support - Built for amd64, arm64, ppc64le, and s390x
  • Always current - Automatically tracks all supported Node.js and Python versions
  • Nightly updates with intelligent layering - only download what's changed
  • Pre-configured tools - Docker, build-essential, gh CLI, and development libraries ready to go
  • Smart caching - Layered architecture means updates are incremental, not full re-downloads

What's included

All images include:

  • Build essentials (gcc, g++, make, cmake, pkg-config)
  • Full Docker stack including daemon, CLI and Compose (via Ubuntu's docker.io package for guaranteed multi-architecture support and Docker-in-Docker capabilities)
  • GitHub CLI (gh)
  • Git and Git LFS
  • Common utilities (curl, wget, jq, tar, zip)
  • Pre-configured package repositories (LLVM, Kubernetes, HashiCorp, Microsoft)

Runtime languages:

  • Node.js with npm/npx (LTS versions for "previous" releases, latest stable for others)
  • Python (native OS version or latest stable from deadsnakes PPA for Ubuntu)
  • uv package manager
  • Pre-installed Python development tools (ruff, mypy, pytest, black, isort, prek)
  • Compatible with actions/setup-node
  • See docs/python.md for full details

Building your own

Need to customise these images? See docs/self-build.md for detailed build instructions.

Credits

Inspired by catthehacker/docker_images. This project provides automated builds with wider version coverage and optimised layer caching.

License

MIT - See LICENSE file for details.