# CI images for B4L Gitea Actions Images the B4L runners use, published in the Gitea container registry of the B4L organisation (public, so runners pull them without a login). ## kicad10_auto_node KiBot's KiCad 10 image (`ghcr.io/inti-cmnb/kicad10_auto_full`) with Node.js added. Gitea's act_runner runs JavaScript actions such as `actions/checkout` inside the job container, and the KiBot images have no Node. | | | |---|---| | Image | `git.b4l.co.th/b4l/kicad10_auto_node:latest` | | Versioned tag | `_k_node`, e.g. `1.9.1-1_k10.0.5_node24.22.0` | | Contents | KiBot 1.9.1, KiCad 10.0.5, Debian 13, Node.js 24 LTS with npm | | Used by | runner label `kicad10_auto` (product template, LVSolarBuck, harNES) | ### Runner In the runner's `config.yaml` (or its registration labels): ```yaml runner: labels: - "kicad10_auto:docker://git.b4l.co.th/b4l/kicad10_auto_node:latest" ``` Restart the runner after changing labels. With the full registry name the runner pulls the image whenever it is missing, so a `docker image prune` no longer breaks the jobs. `container.force_pull: true` (act_runner's default) is fine: with the layers cached, a pull only compares the manifest. ### Build and publish ```bash docker login git.b4l.co.th # once; a token with write:package ./build.sh # build and test ./build.sh --push # build, test, push :latest and the versioned tag ``` For a newer KiBot or Node, set `BASE` and/or `NODE_VERSION`: ```bash BASE=ghcr.io/inti-cmnb/kicad10_auto_full: NODE_VERSION= ./build.sh --push ``` Base tags: https://github.com/INTI-CMNB/kicad_auto_full/pkgs/container/kicad10_auto_full ; Node LTS: https://nodejs.org/dist/index.json . ### Not included `typecad-docgen`, which the docgen workflows call: the npm package `@typecad/typecad-docgen` is no longer published (checked 2026-10-15). Once a replacement is chosen, add it with `NPM_GLOBAL="" ./build.sh --push`.