Self-hosted Tangled spindle

S3: Smoke-test our spindle with a lint pipeline (ENG-469) #4

Merged demi.dev
targeting main from stoopkidddd/eng-469-s3-smoke-test-our-spindle-on-the-demidevspindle-repo
Merged opened by and assigned to demi.dev
targeting main from stoopkidddd/eng-469-s3-smoke-test-our-spindle-on-the-demidevspindle-repo

Linear: ENG-469

Summary #

This is the first pipeline on our own spindle. The repo's Settings → Pipelines now points at spindle.demi.dev.

  • .tangled/workflows/check.yml runs on PRs to main and on pushes to main. It uses the nixery engine with bash, coreutils, findutils, git, hadolint and shellcheck.
    • hadolint: checks every tracked *Dockerfile.
    • shellcheck: checks every tracked *.sh.
  • The Nix evaluation half of mise run check needs Docker, so it is skipped in CI, as the issue allows.

This PR is also the test bed for the smoke checks:

  • the PR run;
  • a cancelled run;
  • a temporary sleep 360 step that proves the 15-minute timeout;
  • the logs in the bucket.

Rounds will add and remove the temporary step. Notes on the exact UI steps follow in a later round.

Verify (local) #

$ git ls-files -z -- '*Dockerfile' | xargs -0 hadolint && git ls-files -z -- '*.sh' | xargs -0 shellcheck   → ok
$ mise run check   → exit 0

🤖 Generated with Claude Code

Commits 5

S3: Record the drilled cancel path (ENG-469)
S3: Run the Nix evaluation in CI and document the cancel XRPC (ENG-469)
S3: Remove the timeout step and record the Tangled steps that worked (ENG-469)
S3: Add a temporary 6-minute step to test the timeout (ENG-469)
S3: Add the lint pipeline for our spindle (ENG-469)