ADR 0172: the lab is a module, and runs a bed when the mesh asks
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
---
|
||||
layer: to-be
|
||||
status: in-progress
|
||||
code: [mesh-lab]
|
||||
updated: 2026-09-11
|
||||
code: [mesh-lab, mesh-catalog modules/lab]
|
||||
updated: 2026-10-02
|
||||
decisions:
|
||||
- 02-DECISIONS/0172-the-lab-is-a-module-and-runs-a-bed-when-the-mesh-asks.md
|
||||
- 02-DECISIONS/0016-the-lab.md
|
||||
- 02-DECISIONS/0010-delivery.md
|
||||
---
|
||||
@@ -119,7 +120,25 @@ In order, on a machine with nothing:
|
||||
|
||||
6. **Verification**, as above, before anything is raised.
|
||||
|
||||
## Open
|
||||
## The lab answers the mesh
|
||||
|
||||
*2026-10-02* ([ADR 0172](../../02-DECISIONS/0172-the-lab-is-a-module-and-runs-a-bed-when-the-mesh-asks.md)).
|
||||
Once installed, the lab is also a module: `lab`, assigned to the machine that passed `check`. Its
|
||||
tools run there and nowhere else:
|
||||
|
||||
| tool | does |
|
||||
|---|---|
|
||||
| `lab_check` | the lab's `check`, on this machine |
|
||||
| `lab_run` | fresh checkouts of the named branches from the forge, side by side, then the suite on the named beds; answers with an id |
|
||||
| `lab_status` | where a run is, and how it ended: the commits it tested, passed and failed |
|
||||
| `lab_log` | the run's output so far |
|
||||
| `lab_stop` | ends a run |
|
||||
|
||||
The runtime is a container holding the toolchain the suite builds with. It reaches the
|
||||
virtualisation daemon and the container runtime through their sockets on the machine, so what it
|
||||
raises is what a hand run raises. The prerequisites above stay installed by hand. The module uses
|
||||
them, and never installs them.
|
||||
|
||||
|
||||
- **Whether the lab's bootstrap may install packages at all**, given that the mesh's rules
|
||||
forbid installing by hand. The resolution is probably that the lab's bootstrap *is* the
|
||||
|
||||
Reference in New Issue
Block a user