back interdiff of round #4 and #3

spindle: make workflows engine-agnostic #423

merged
opened by winter.bsky.social targeting master from winter.bsky.social/core: push-luoyqwkpromz
ERROR
api/tangled/cbor_gen.go

Failed to calculate interdiff for this file.

ERROR
api/tangled/tangledpipeline.go

Failed to calculate interdiff for this file.

ERROR
cmd/gen.go

Failed to calculate interdiff for this file.

ERROR
lexicons/pipeline/pipeline.json

Failed to calculate interdiff for this file.

ERROR
nix/modules/spindle.nix

Failed to calculate interdiff for this file.

ERROR
spindle/config/config.go

Failed to calculate interdiff for this file.

ERROR
spindle/engine/engine.go

Failed to calculate interdiff for this file.

ERROR
spindle/engine/errors.go

Failed to calculate interdiff for this file.

ERROR
spindle/engines/nixery/ansi_stripper.go

Failed to calculate interdiff for this file.

ERROR
spindle/engines/nixery/engine.go

Failed to calculate interdiff for this file.

ERROR
spindle/engines/nixery/envs.go

Failed to calculate interdiff for this file.

ERROR
spindle/engines/nixery/envs_test.go

Failed to calculate interdiff for this file.

ERROR
spindle/engines/nixery/errors.go

Failed to calculate interdiff for this file.

ERROR
spindle/engines/nixery/setup_steps.go

Failed to calculate interdiff for this file.

ERROR
spindle/models/engine.go

Failed to calculate interdiff for this file.

ERROR
spindle/models/logger.go

Failed to calculate interdiff for this file.

ERROR
spindle/models/models.go

Failed to calculate interdiff for this file.

ERROR
spindle/models/pipeline.go

Failed to calculate interdiff for this file.

ERROR
spindle/server.go

Failed to calculate interdiff for this file.

ERROR
spindle/stream.go

Failed to calculate interdiff for this file.

ERROR
spindle/xrpc/xrpc.go

Failed to calculate interdiff for this file.

ERROR
workflow/compile.go

Failed to calculate interdiff for this file.

ERROR
workflow/compile_test.go

Failed to calculate interdiff for this file.

ERROR
workflow/def.go

Failed to calculate interdiff for this file.

ERROR
workflow/def_test.go

Failed to calculate interdiff for this file.

NEW
docs/spindle/pipeline.md
···
repo. Generally:
* Pipelines are defined in YAML.
-
* Dependencies can be specified from
-
[Nixpkgs](https://search.nixos.org) or custom registries.
-
* Environment variables can be set globally or per-step.
+
* Workflows can run using different *engines*.
+
+
The most barebones workflow looks like this:
+
+
```yaml
+
when:
+
- event: ["push"]
+
branch: ["main"]
+
+
engine: "nixery"
+
+
# optional
+
clone:
+
skip: false
+
depth: 50
+
submodules: true
+
```
+
+
The `when` and `engine` fields are required, while every other aspect
+
of how the definition is parsed is up to the engine. Currently, a spindle
+
provides at least one of these built-in engines:
+
+
## `nixery`
+
+
The Nixery engine uses an instance of [Nixery](https://nixery.dev) to run
+
steps that use dependencies from [Nixpkgs](https://github.com/NixOS/nixpkgs).
Here's an example that uses all fields: