Skip to content
drevopsPublic

About

πŸƒβ€β™‚οΈ Docker image for CI job runner container

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

ci-runner

Docker image for CI runner

Test GitHub Issues GitHub Pull Requests GitHub release (latest by date) LICENSE Renovate

Docker Pulls amd64 arm64

Vortex Ecosystem


Based on Debian php:8.4-cli-bookworm.

Included packages

Usage

Make sure to always pin the version of this image to the tag:

drevops/ci-runner:25.8.0

For testing purposes, you can use the canary tag:

drevops/ci-runner:canary

When using in GitHub Actions, make sure to add a fix for the overwritten $HOME:

name: Test

jobs:
  test:
    runs-on: ubuntu-latest

    container:
      image: drevops/ci-runner:25.8.0

    steps:
      - name: Preserve $HOME set in the container
        run: echo HOME=/root >> "$GITHUB_ENV" # https://github.com/actions/runner/issues/863

      - name: Check out the repo
        uses: actions/checkout@v5

Testing

This project uses Goss (via dgoss) to test the image environment from the host. The image itself does not bundle Goss. To run the tests locally:

# Build the image
docker build -t drevops/ci-runner:test-ci .

# Run tests
dgoss run -i drevops/ci-runner:test-ci

Note for ARM64 systems (Apple Silicon): The image builds natively on arm64, so dgoss needs the Linux arm64 goss binary inside the container. Install these goss binaries:

# Create bin directory
mkdir -p ~/bin

# Download macOS ARM64 goss binary for local use
curl -L "https://github.com/goss-org/goss/releases/download/v0.4.9/goss-darwin-arm64" -o ~/bin/goss
chmod +x ~/bin/goss

# Download Linux ARM64 goss binary for container testing
curl -L "https://github.com/goss-org/goss/releases/download/v0.4.9/goss-linux-arm64" -o ~/bin/goss-linux-arm64
chmod +x ~/bin/goss-linux-arm64

# Download dgoss wrapper
curl -L "https://github.com/goss-org/goss/releases/download/v0.4.9/dgoss" -o ~/bin/dgoss
chmod +x ~/bin/dgoss

# Run tests with correct binary
export GOSS_PATH=~/bin/goss-linux-arm64
~/bin/dgoss run -i drevops/ci-runner:test-ci

Maintenance and releasing

Versioning

This project uses Year-Month-Patch versioning:

  • YY: Last two digits of the year, e.g., 25 for 2025.
  • m: Numeric month, e.g., April is 4.
  • patch: Patch number for the month, starting at 0.

Example: 25.4.2 indicates the third patch in April 2025.

Releasing

Releases are scheduled to occur at a minimum of once per month.

GitHub Actions builds the image for linux/amd64 and linux/arm64 and pushes it to Docker Hub with these tags:

  • YY.m.patch tag - when a release tag is published on GitHub.
  • latest - when a release tag is published on GitHub.
  • canary - on every push to the main branch, after the tests pass.

Dependencies update

Renovate bot is used to update dependencies. It creates a PR with the changes and automatically merges it if CI passes. These changes are then released as a canary version.


This repository was created using the Scaffold project template

About

πŸƒβ€β™‚οΈ Docker image for CI job runner container

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages