Files
ttg-marketplace/plugins/ttg-ops/skills/ttg-ci-enroll/SKILL.md
T
mr.zeroandClaude Opus 5 5ceff41668 Point the skills at the docs' new home in devarea
REPO_REFACT.md and ECOSYSTEM_PLAN.md moved out of the un-versioned
workspace root into the devarea repo, next to WIKI_CONNECTION.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 11:19:45 +02:00

3.6 KiB
Raw Blame History

name, description, allowed-tools
name description allowed-tools
ttg-ci-enroll Wire a TTG repo into the Woodpecker build and prove the pipeline actually runs — the one-line platform config, the builder image, registration, and the catalog entry it publishes to. Use when a repo should start building, or when a build is not running even though the config is in place ("kösd be a CI-be", "nem fut a build", "enroll CI"). Bash, Read, Edit, Write, Grep, Glob

ttg-ci-enroll

Egy repo bekötése a buildbe. A leggyakoribb hiba nem a konfig hiánya, hanem hogy a konfig megvan, de a repo nincs regisztrálva — ilyenkor semmi nem történik, és nincs hibaüzenet sem.

Hogyan épül fel a build

A repo .woodpecker.yaml-ja egyetlen sor:

# The CI pipeline is served by the update server: GET /build/config?platform=ebitengine
platform: ebitengine

A tényleges pipeline-t a WarpEngine config-extension szolgáltatása állítja elő (/build/config), a builder image-eket pedig a services/teletypegames apps/api/config/initializers/warp_engine.rb-je sorolja fel (c.ci_platforms). Ezért egy image-bump egyetlen sor ott, nem hét repóban.

Támogatott platformok: c64, tic80, ebitengine, love, godot, bevy, phaser.

Lépések

  1. Platform-konfig. Ha nincs, hozd létre a .woodpecker.yaml-t a fenti egy sorral. Figyelj a kiterjesztésre: mindkettő él a vadonban (.woodpecker.yaml és .woodpecker.yml), keresd mindkettőt, mielőtt hiányzónak nyilvánítod. Új repóhoz a .yaml a preferált.

  2. Toolchain. A platform build/<platform>-tools repója adja a Makefile-mintát (example-makefile.make) és a builder image Dockerfile-ját. Új projekt Makefile-ja innen induljon, ne másolásból.

  3. Go projekt esetén GOPRIVATE. Ha a repo saját modulra (engines/…) támaszkodik, a Makefile-ban legyen export GOPRIVATE = git.teletypegames.org — a saját modulјaink nincsenek a proxy.golang.org-on. Ha replace ... => ../<repo> direktíva van a go.mod-ban, az CI-ben biztosan bukik (testvérkönyvtárat vár): adasd ki a függőséget rendes verzióval a ttg-publish-module skillel, és dobd el a replace-t.

  4. Regisztráció a Woodpeckerben. A repo aktiválása a Woodpecker felületén történik; a WarpEngine oldali nyilvántartás ebből szinkronizálódik.

  5. Ellenőrzés. Mit tud a rendszer:

    curl -s https://teletypegames.org/api/ci/pipelines
    

    A sorokban repo_owner, repo_name, platform, active, last_pipeline_status. Amíg a repo nincs a listában, nem fut rá build.

Ha „be van kötve", mégsem fut

Ellenőrizendő sorrendben:

  • Tényleg a listában van? A /api/ci/pipelines a mérce, nem a repóban lévő fájl.
  • Elavult tulajdonos. A tábla repo_owner-je org-váltás után a régi orgot mutathatja, amíg a szinkron nem futott. A szinkron woodpecker_repo_id-ra kulcsol és a távoli adatból frissíti a tulajdonost, tehát magától rendbe jön — de addig félrevezet.
  • Tag-esemény. Ha a pipeline when: event: tag-re van kötve (publikáló lépések), a sima push nem indítja. Nézd meg, hogy a repón engedélyezett-e a tag-build.
  • Secret jogok. A publikáló lépések tokenjének package:write kell, és org-váltás után a leírásában szereplő cél is elavulhat.
  • last_pipeline_status. A failure/error érték már önmagában irány — ne a konfigot kezdd el javítgatni, előbb nézd meg, mi bukott.

A végén

Ha a bekötés új platformot tesz élővé, a devarea/ECOSYSTEM_PLAN.md platform-lefedettségi táblázatában javítsd az „Aktív CI" oszlopot.