1564c61acc
- 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
2.2 KiB
2.2 KiB
tinqs/ci — Roadmap
Done (2026-05-22)
- Create
tinqs/cirepo 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:
- AWS CodeBuild project to build images from this repo
- SSH to Lightsail when back online
- Self-build: add a workflow here that builds images on the current runner
Next: Label Routing
Once images exist:
- Update ECS task definitions — one per image
- Register runners with matching labels:
go,node,docker,deploy - Update studio workflows:
runs-on: host→ specific labels - 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:StopTaskon 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 |