# tinqs/ci CI toolchain for Tinqs Studio — composite Gitea Actions and a Lambda dispatcher that orchestrates ephemeral EC2 Spot runners. > ⚠️ **This repo must stay public.** `act_runner` (go-git) clones action repos without auth; every other tinqs repo is private. If this repo goes private, every `uses: tinqs/ci/...` step breaks. ``` Push → Gitea webhook → Lambda (tinqs-ci-dispatch) → EC2 Spot → act_runner → job → self-terminate ``` ## Using the actions ```yaml steps: - uses: tinqs/ci/checkout@v1 with: sparse: 'cmd/tstudio' - uses: tinqs/ci/setup-go@v1 - uses: tinqs/ci/setup-aws@v1 with: ecr-login: 'true' ``` | Action | What it does | |--------|-------------| | `tinqs/ci/checkout@v1` | Clone a repo from tinqs.com (sparse, depth, token auth) | | `tinqs/ci/setup-go@v1` | Install Go (skips if pre-baked in AMI) | | `tinqs/ci/setup-node@v1` | Install Node.js + pnpm (skips if pre-baked) | | `tinqs/ci/setup-aws@v1` | Install AWS CLI + optional ECR login | ## Layout - `checkout/`, `setup-go/`, `setup-node/`, `setup-aws/` — composite actions - `orchestrator/dispatch/` — the dispatcher Lambda (`main.go`) - `images/` — runner image Dockerfiles ## 📖 Full docs → [`wiki/`](wiki/README.md) The team wiki lives in **[`wiki/`](wiki/README.md)** (plain markdown, rendered by Gitea): - [Architecture](wiki/Architecture.md) — design, dispatcher, labels, runner lifecycle - [DevOps Reference](wiki/DevOps-Reference.md) — AWS resources, webhook flow, Spot lifecycle, env vars, cost - [Operations](wiki/Operations.md) — deploy the dispatcher, template deploy, rotate tokens, AMI, monitoring, incidents - [Roadmap](wiki/Roadmap.md) — done / next