Files
ci/PLAN.md
T
ozan 1564c61acc fix: Alpine compatibility + READMEs + roadmap
- setup-node: detect Alpine/Debian, use apk or NodeSource
- setup-aws: use pip on Alpine (musl), binary on Debian (glibc)
- setup-go: fix version parsing for Alpine (no grep -P)
- README per action with usage examples and input docs
- PLAN.md: roadmap for runner images, labels, Lambda dispatch
2026-05-22 18:06:11 +01:00

2.2 KiB

tinqs/ci — Roadmap

Done (2026-05-22)

  • Create tinqs/ci repo on tinqs.com
  • Composite actions: checkout, setup-go, setup-node, setup-aws
  • Wire all 6 studio workflows to tinqs/ci/*@v1
  • Alpine + Debian compatibility in all actions
  • Runner image Dockerfiles: base, go, node, docker, deploy, godot
  • Architecture doc: tinqs/internal/architecture/ci-runner-architecture.md

Next: Runner Images

Build and push purpose-built images to ECR. Each workflow type gets a lean image.

Image ECR name Contents Priority
base tinqs-runner-base Alpine + git + AWS CLI + SSH High
go tinqs-runner-go base + Go 1.26 High
node tinqs-runner-node base + Node 22 + pnpm High
docker tinqs-runner-docker dind + Go + AWS CLI High
deploy tinqs-runner-deploy base only Medium
godot tinqs-runner-godot base + headless Godot 4.6 Low (future)

Blocker: No Docker on Forge, Lightsail unreachable. Options:

  1. AWS CodeBuild project to build images from this repo
  2. SSH to Lightsail when back online
  3. Self-build: add a workflow here that builds images on the current runner

Next: Label Routing

Once images exist:

  1. Update ECS task definitions — one per image
  2. Register runners with matching labels: go, node, docker, deploy
  3. Update studio workflows: runs-on: host → specific labels
  4. Lambda dispatcher (future): webhook → Fargate task with correct image

Future: Lambda Dispatch + Cancel

Lambda code already exists in tinqs-ltd/docs/lambda/ (ci-dispatch + ci-exec). Move to tinqs/studio/deploy/lambda/, deploy with SAM.

  • DynamoDB table for run tracking (tinqs-ci-runs)
  • Cancel via ecs:StopTask on webhook or timeout
  • EventBridge cron for stale task cleanup
  • Deploy-only jobs run directly in Lambda (no Fargate needed)

See: tinqs/internal/architecture/ci-runner-architecture.md

Future: More Actions

Action Purpose
tinqs/ci/setup-python Python + pip/uv for ML pipelines
tinqs/ci/deploy-ecs ECS update-service wrapper with wait
tinqs/ci/deploy-s3 S3 sync + CloudFront invalidation
tinqs/ci/notify Post build status to Lobster GChat