An experimental spindle with support for Pixi as an engine
README.md

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 #

  • pixi
  • Git 2.49 or newer. Spindle uses git clone --revision; older Git versions fail with exit status 129 when processing a pipeline.

Workflow #

  1. Run pixi run go test ./... to run tests
  2. Run pixi run go build to build

TODOs #

Optional #