This extension uses docker-compose-ci for local testing.
# One-time setup (if not already done)
git submodule update --init --recursive
# Run all CI checks (lint, phpcs, phpunit)
make ci
# Auto-fix code style issues
make bash
> composer phpcbf
# Stop containers
make down- ✅ Same environment as GitHub Actions CI
- ✅ Correct PHP version, extensions, and MediaWiki automatically
- ✅ No need to install MediaWiki locally
- ✅ Test against multiple MW/PHP versions easily
- ✅ Isolated from your local system
make ci # Run all CI checks
make bash # Enter container shell
make up # Start wiki (http://localhost:8080)
make down # Stop containers
make clean # Remove containers and volumes# Test with MediaWiki 1.39 and PHP 8.1
MW_VERSION=1.39 PHP_VERSION=8.1 make ci
# Test with MediaWiki 1.43 and PHP 8.3
MW_VERSION=1.43 PHP_VERSION=8.3 make ciInside the container (make bash):
composer test # Run phpcs + phpunit
composer phpcs # Check code style
composer phpcbf # Fix code style
composer phpunit # Run unit tests (tests/phpunit/unit/)
composer phpunit:integration # Run integration tests (tests/phpunit/integration/)To update the build submodule to the latest upstream commit, run:
cd build && git fetch origin && git checkout origin/main && cd ..
git add build
git commit -m "build: update docker-compose-ci submodule"Then open a PR with the updated submodule pointer.
Note: The
buildsubmodule is pinned to a specific commit for reproducibility. The Makefile will check out that exact commit when you runmake. Do not use--remotewhen updating, as that would bypass the pin.