Commit Graph

13 Commits

Author SHA1 Message Date
ozan 84d0ebff48 fix: dnf support in setup-node + setup-aws, node label t3.medium
- setup-node: detect dnf (Amazon Linux) alongside apk/apt-get
- setup-aws: detect dnf for official installer
- node Spot bumped to t3.medium (4GB) — Docusaurus OOM'd on t3.small
2026-05-23 12:37:25 +01:00
ozan 29957c6239 fix: runner env vars — HOME, AWS_DEFAULT_REGION, PATH in runner config
Ensures act_runner passes correct environment to job steps
so AWS CLI can find IMDS credentials and Go/Node are on PATH.
2026-05-23 12:04:00 +01:00
ozan e728a8d819 fix: separate runner token from API token, proper workdir
- RUNNER_TOKEN env for act_runner registration (separate from GITEA_TOKEN)
- Create /opt/runner/work as workdir_parent (fixes .cache path error)
- Runner config via .runner.yaml with explicit workdir
- IMDSv2 for instance metadata
- PATH includes /usr/local/go/bin
2026-05-22 20:22:55 +01:00
ozan 69d04b9ea7 fix: bump Spot bid prices (eu-west-1 minimums higher than expected) 2026-05-22 20:05:10 +01:00
ozan 5f676dfb6b feat: switch orchestrator from Fargate to EC2 Spot
Dispatcher now launches Spot instances instead of Fargate tasks:
- t3.small for go/node builds ($0.005/hr)
- t3.medium for docker/godot builds ($0.01/hr)
- t3.micro for deploy jobs ($0.004/hr)

Instances self-terminate via user-data trap on exit.
Cancel: ec2:TerminateInstances instead of ecs:StopTask.
Cleanup cron also sweeps orphan instances by tinqs-ci tag.

Pre-baked AMI with act_runner + tools = instant boot, no install.
v1
2026-05-22 19:24:33 +01:00
ozan 537235c17b fix: use wget fallback when curl missing (bare Alpine runner) 2026-05-22 18:55:00 +01:00
ozan e96c7c5bf1 feat: CI orchestrator — Lambda dispatch + Fargate routing + cancel
dispatch: receives Gitea webhook, routes by runs-on label to Fargate
  tasks (go/node/docker/godot) or Lambda executor (deploy).
  Path filter evaluation, DynamoDB run tracking, cancel via StopTask.
exec: lightweight Lambda for deploy-only jobs (S3 sync, ECS update).
SAM template: API Gateway + 2 Lambdas + DynamoDB + cleanup cron.
2026-05-22 18:47:47 +01:00
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
ozan 4be33e33f1 feat: multi-image runners — go, node, docker, deploy, godot
Replace single fat image with purpose-built images per workflow type.
Each image is lean: base (Alpine+AWS+git) → go/node/deploy extend it.
docker image standalone (dind base). godot for future game builds.
build-all.sh builds base first, then all others in parallel.
2026-05-22 18:00:57 +01:00
ozan c01049dd5b docs: clean up action comments — describe what we do, not what others had 2026-05-22 17:56:40 +01:00
ozan d61246e7e4 docs: add provenance comments — what was replaced, why, what was removed
Each action.yml now documents:
- Original upstream repo (GitHub Actions)
- Why it was rewritten for self-hosted Gitea
- What was removed from the original
- Author and date
2026-05-22 17:55:30 +01:00
ozan 5f0ddc1901 feat: composite actions + runner base image
Actions: checkout, setup-go, setup-node, setup-aws
Runner image: Go 1.26 + Node 22 + AWS CLI + Docker (docker:29-dind)
2026-05-22 17:52:08 +01:00
ozan ee74d56df8 Initial commit 2026-05-22 16:50:47 +00:00