Skip to content

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

License

Notifications You must be signed in to change notification settings

drevops/ci-runner

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


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.1.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

The image includes Goss for environment testing. To run tests locally using dgoss:

# 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): You'll need to install the correct goss binaries:

# Create bin directory
mkdir -p ~/bin

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

# Download Linux AMD64 goss binary for container testing
curl -L "https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64" -o ~/bin/goss-linux-amd64
chmod +x ~/bin/goss-linux-amd64

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

# Run tests with correct binary
export GOSS_PATH=~/bin/goss-linux-amd64
~/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., 23 for 2023.
  • m: Numeric month, e.g., April is 4.
  • patch: Patch number for the month, starting at 0.

Example: 23.4.2 indicates the third patch in April 2023.

Releasing

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

This image is built by DockerHub via an automated build and tagged as follows:

  • YY.m.patch tag - when release tag is published on GitHub.
  • latest - when release tag is published on GitHub.
  • canary - on every push to main branch

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

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 5