Files

45 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

# 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