Automate translation sync with local rules + CI
Bowrain has two layers of automation: local rules declared on the kapi.yaml
recipe (top-level automations:) that run on the developer machine
(e.g. pre-push QA), and the server side — the project's converge-on-push
policy and CI pipelines. Together they make translation sync fully automated —
code lands, translations follow.
Local rules
Declare automations: at the top level of the kapi.yaml recipe. A
pre-push QA rule, for example, fires before kapi push completes, so source
never reaches the server without passing your checks. Local rules give a
developer guardrails on their own machine. (The recipe also accepts a hooks:
block, but hooks are schema-only today — not yet executed;
use automations:.)
The server side
With server.converge: on-push (the default), the server runs
a server run after every push — no workflow file needed. For
explicit pipelines, The loop in CI covers GitHub Actions,
GitLab CI, and the Bowrain GitHub App; the simplest GitHub workflow runs
kapi up on every push to main, so the moment code lands the server catches
up on the new source and completed work flows back.
Every run — from a push, from CI, or started manually — lands in the project's Runs view in the web and desktop app:
The desktop app's project Automations and Runs views: automation rules that run the loop on the server on every push, and the run history — each run's state (Running, Up to date, Parked), its trigger, pass count, and per-locale summary — with a Run now button to start one by hand.
Next
The full automation rule schema and event types are documented in Automation.