forked from tangled.org/core
this repo has no description
1# spindle architecture 2 3Spindle is a small CI runner service. Here's a high level overview of how it operates: 4 5* listens for [`sh.tangled.spindle.member`](/lexicons/spindle/member.json) and 6[`sh.tangled.repo`](/lexicons/repo.json) records on the Jetstream. 7* when a new repo record comes through (typically when you add a spindle to a 8repo from the settings), spindle then resolves the underlying knot and 9subscribes to repo events (see: 10[`sh.tangled.pipeline`](/lexicons/pipeline.json)). 11* the spindle engine then handles execution of the pipeline, with results and 12logs beamed on the spindle event stream over wss 13 14### the engine 15 16At present, the only supported backend is Docker. Spindle executes each step in 17the pipeline in a fresh container, with state persisted across steps within the 18`/tangled/workspace` directory. 19 20The base image for the container is constructed on the fly using 21[Nixery](https://nixery.dev), which is handy for caching layers for frequently 22used packages. 23 24The pipeline manifest is [specified here](/docs/spindle/pipeline.md).