pixi-spindle [WIP]#
The purpose of this repo is to explore using pixi as an
alternative to Nixery for a Tangled Spindle.
This reuses most of the harness from the default spindle.
Goal#
Use pixi environments as the source of truth CI environments
and lean on pixi run (which uses deno_task_shell under the hood).
This approach makes it so that you can actually run your tests locally because the pipeline can be completely encoded
into your pixi.toml or pyproject.toml file.
Example#
The following example is for the current repo:
when:
- event: ["push", "manual"]
branch: ["main"]
engine: "pixi"
pixi:
# This install from the default pixi environment
environment: "default"
clone:
skip: false
depth: 1
submodules: false
steps:
- name: "Test"
# This runs "pixi run test" under the hood
command: "test"
- name: "Build"
# This runs "pixi run build" under the hood
command: "build"
Development Setup#
Requirements#
Workflow#
- Run
pixi run go test ./...to run tests - Run
pixi run go buildto build
TODOs#
- Add setup instructions
- Add systemd unit
- Add configurable memory limit
- Test manual, global dependencies
- Add an integration smoke test (this may not be able to be run in CI, but we shall see)
- Make pixi image configurable
Optional#
- Consider building a minimal custom Pixi image with Git installed
- Add a script to easily add support to a repo