# DevOps Reference ## AWS Resources (eu-west-1) | Resource | Name/ID | Purpose | |----------|---------|---------| | Lambda | `tinqs-ci-dispatch` | Webhook handler + Spot launcher | | DynamoDB | `tinqs-ci-runs` | Run tracking (repo, run_id, instance_id, status) | | AMI | `tinqs-ci-runner-v2` (ami-00a129385002e4de9) | Pre-baked runner (Go, Node, Docker, act_runner) | | Security Group | sg-030bf74b43d3faac7 | Runner SG (outbound HTTPS) | | Subnet | subnet-04b5aeec9bfc4ec2c | Default VPC subnet | | Instance Profile | tinqs-ci-runner | IAM role (S3, ECR, ECS, SSM) | | CloudWatch | /aws/lambda/tinqs-ci-dispatch | Dispatcher logs | | ECS Cluster | tinqs-git | Platform (Gitea) — NOT for CI runners | | EFS | tinqs-git-repos (fs-03f3fb4859ceb12a3) | Gitea repo storage — NOT for CI | ## Deleted resources (26 May 2026) | Resource | Why deleted | |----------|-------------| | Lambda `tinqs-ci-exec` | Never successfully ran a build. Deploy jobs go through Spot now. | | CloudWatch `/aws/lambda/tinqs-ci-exec` | Log group for deleted Lambda | | CloudWatch `/ecs/tinqs-runner` | From Fargate era, no longer used | ## Webhook flow ``` Gitea (tinqs.com) └─ per-repo webhook on push └─ POST https:///dispatch └─ Lambda tinqs-ci-dispatch ├─ Fetch .gitea/workflows/*.yml via Gitea API ├─ Evaluate triggers (branch + path filters) ├─ For each matched workflow: │ ├─ Read runs-on label │ └─ RunInstances (Spot, ephemeral) └─ Track in DynamoDB ``` ## Spot instance lifecycle ``` 1. Lambda calls RunInstances (Spot, InstanceInitiatedShutdownBehavior=terminate) 2. User-data runs: a. Configure git auth (url.insteadOf with GITEA_TOKEN) b. act_runner register --ephemeral --labels