AkurAI Build
Menu

AkurAI-Build

public

Latest change a57aa282d30caadb78a7b04e1aa5aa38f40365b3 - Enable verified ARM64 builds and reusable binary caches by Ólafur Búi Ólafsson

---
name: akurai-build
description: Operates the Titan-hosted AkurAI Build Git CI/CD system through its maintained deploy script and JSON CLI. Use for repository registration, pipeline runs, logs, artifacts, promotions, health, deployment, rollback, Nginx-vhost setup, and release publishing.
compatibility: Requires SSH alias titan; production is reached through the AkurAI-VPN mesh.
license: MIT
---

# AkurAI Build operations

Read `../../../deploy.md` before every task. Check this skill, `deploy.sh help`, and `deploy.sh cli --help` before running anything. Mutations must use maintained commands. Direct shell/SSH/system commands are read-only probes only; after a successful probe, add the operation and a focused check to the CLI or deploy script and update this skill before reusing it.

Canonical source is `~/Projects/AkurAI-Build` on Titan. Production is `https://akurai-builds.olibuijr.com`; EC2 Nginx proxies through AkurAI-VPN to Titan `100.88.0.9:3210`.

Use only the maintained entrypoint. It forwards to Titan when invoked elsewhere and automatically verifies source-tree synchronization before source-changing/checking commands:

```sh
~/Projects/AkurAI-Build/deploy.sh sync
~/Projects/AkurAI-Build/deploy.sh edge-probe
~/Projects/AkurAI-Build/deploy.sh probe
~/Projects/AkurAI-Build/deploy.sh status-local
~/Projects/AkurAI-Build/deploy.sh status
~/Projects/AkurAI-Build/deploy.sh logs 100
~/Projects/AkurAI-Build/deploy.sh format
~/Projects/AkurAI-Build/deploy.sh clean-build  # only for pre-fix corrupt/stale Cargo artifacts
~/Projects/AkurAI-Build/deploy.sh recover-checks  # only after a timed-out/stale check
~/Projects/AkurAI-Build/deploy.sh check
~/Projects/AkurAI-Build/deploy.sh binfmt
~/Projects/AkurAI-Build/deploy.sh docker-smoke
~/Projects/AkurAI-Build/deploy.sh build-info
~/Projects/AkurAI-Build/deploy.sh deploy-local
~/Projects/AkurAI-Build/deploy.sh deploy
~/Projects/AkurAI-Build/deploy.sh rollback
```

Do not replace these with ad-hoc `ssh`, `systemctl`, `docker`, Nginx, certificate, package-manager, Git publication, database, artifact, or filesystem mutation commands. Never edit installed/runtime files manually.

## JSON CI CLI

Run production operations through `deploy.sh cli`:

```sh
~/Projects/AkurAI-Build/deploy.sh cli doctor
~/Projects/AkurAI-Build/deploy.sh cli repo list
~/Projects/AkurAI-Build/deploy.sh cli repo add app https://github.com/org/app.git --branch main
~/Projects/AkurAI-Build/deploy.sh cli run app --git-ref main
~/Projects/AkurAI-Build/deploy.sh cli runs --repo app --limit 20
~/Projects/AkurAI-Build/deploy.sh cli show 42
~/Projects/AkurAI-Build/deploy.sh cli wait 42 --timeout 3600
~/Projects/AkurAI-Build/deploy.sh cli logs 42 --failed
~/Projects/AkurAI-Build/deploy.sh cli retry 42
~/Projects/AkurAI-Build/deploy.sh cli promote 42 production
~/Projects/AkurAI-Build/deploy.sh cli artifact get 7 ./artifact.bin
```

Every non-server command returns `{ "ok": true, "data": ... }` or exits nonzero with `{ "ok": false, "error": ... }`. Parse JSON and require `status == "succeeded"` before claiming a build or deployment succeeded. `waiting` requires explicit promotion; `queued` and `running` are incomplete.

## Source lifecycle

```sh
~/Projects/AkurAI-Build/deploy.sh lock
~/Projects/AkurAI-Build/deploy.sh publish "concise change summary"
~/Projects/AkurAI-Build/deploy.sh deploy
~/Projects/AkurAI-Build/deploy.sh vhost
```

Service deploys have a bounded readiness wait. Checks have hard process-group timeouts so a deadlock is killed and fails closed. `publish` maintains the repository-local GitHub author identity, checks, commits, and pushes GitHub `olibuijr/AkurAI-Build`; `deploy` checks again, builds, retains the previous binary, migrates transactionally, installs the skill, and restarts the hardened service.

Secrets belong only in protected files under `~/.config/akurai-build/` or as `AKURAI_SECRET_<NAME>` entries in its mode-0600 environment file. Never retrieve, echo, log, pass, or store their values in commands, Markdown, Git, or SQLite. Native jobs require a trusted repository and an explicit production opt-in; prefer restricted Docker jobs.