An experimental spindle with support for Pixi as an engine
9

Configure Feed

Select the types of activity you want to include in your feed.

Go 95.7%
Other 4.3%
25 1 2

Clone this repository

https://tangled.org/ethanholz.com/pixi-spindle https://tangled.org/did:plc:zbuybkovcufuk6pebcdacg35
git@knot2.thoriumworks.com:ethanholz.com/pixi-spindle git@knot2.thoriumworks.com:did:plc:zbuybkovcufuk6pebcdacg35

For self-hosted knots, clone URLs may differ based on your setup.



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#

Workflow#

  1. Run pixi run go test ./... to run tests
  2. Run pixi run go build to 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