PHPackages                             emteknetnz/legion - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. emteknetnz/legion

ActiveLibrary

emteknetnz/legion
=================

Parallel silverstripe testing using docker

03PHPCI failing

Since Aug 2Pushed 2y ago1 watchersCompare

[ Source](https://github.com/emteknetnz/legion)[ Packagist](https://packagist.org/packages/emteknetnz/legion)[ RSS](/packages/emteknetnz-legion/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Overview
========

[](#overview)

This is a dev only module to get phpunit running parallel in silverstripe projects using docker

Installation
============

[](#installation)

composer require --dev emteknetnz/legion

Usage
=====

[](#usage)

vendor/bin/legion app/tests

Details
=======

[](#details)

Host -&gt; Docker container A -- Primary controller for multiple container B secondaries -&gt; Docker container Bs -- Large number of these are spawned to run tests

Even though container Bs are created from inside of container A, they're actually siblings because of the shared /var/run/docker.sock between host, container A and container Bs. This is the simplest way to enable 'docker in docker'

The /tmp folder is also shared between host, container A and container Bs. This is so that when you run ?flush on container A, it's immediately usable with container Bs which spin in and out of existance as needed.

Host needs to share /tmp because container A and container Bs are siblings volume mounts won't work easily out of the box. Also, possibly it would be better if it wasn't the /tmp folder shared, instead should maybe use /silverstripe-cache/ ?

. .

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a25bc04c5720a36869d5a39c6449dde7eb43e19b7c8e666d5f632d6a9ab440b1?d=identicon)[emteknetnz](/maintainers/emteknetnz)

---

Top Contributors

[![emteknetnz](https://avatars.githubusercontent.com/u/4809037?v=4)](https://github.com/emteknetnz "emteknetnz (54 commits)")

### Embed Badge

![Health badge](/badges/emteknetnz-legion/health.svg)

```
[![Health](https://phpackages.com/badges/emteknetnz-legion/health.svg)](https://phpackages.com/packages/emteknetnz-legion)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
