Based on Debian php:8.4-cli-bookworm.
- aspell:
3.1.20 - Bats:
1.12.0 - Composer:
2.8.12 - Codecov:
0.8.0 - curl:
7.88.1 - Docker:
28.5.1 - Docker Buildx:
0.29.1 - Docker Compose:
2.40.2 - Git:
2.39.5 - GnuPG:
2.2.40 - jq:
1.6 - kcov:
43 - lsof:
4.95.0 - Lynx:
2.9.0 - Node.js:
23.11.1 - npm:
10.9.2 - npx:
10.9.2 - PHP:
8.4.13 - rsync:
3.2.7 - ShellCheck:
0.11.0 - shfmt:
3.12.0 - OpenSSH:
9.2 - tree:
2.1.0 - UnZip:
6.00 - Vim:
9.0 - Yarn:
1.22.22 - Zip:
3.0
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
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-ciNote 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-ciThis project uses Year-Month-Patch versioning:
YY: Last two digits of the year, e.g.,23for 2023.m: Numeric month, e.g., April is4.patch: Patch number for the month, starting at0.
Example: 23.4.2 indicates the third patch in April 2023.
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.patchtag - when release tag is published on GitHub.latest- when release tag is published on GitHub.canary- on every push tomainbranch
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
