mikkeli 58507edfd5 workflows: replace github.server_url with vars.URL_TO_GITEA
Gitea blocks vars/secrets prefixed with GITEA_ or GITHUB_.
Also avoids relying on github.server_url which resolves to
github.com rather than the local Gitea instance on this runner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 17:48:32 +09:00
2026-06-09 00:03:55 +00:00

novoyuuparosk-auto-wiki

CI/CD pipelines that auto-apply commits to https://wiki.novoyuuparosk.org from upstream content repos.

Pipelines

Path Source repo Purpose Status
pipelines/songs/ mikkeli/ncmr-songs Song lyric pages in development (v1, no executable code yet)

Per-pipeline READMEs cover everything specific to that pipeline (source schema, renderer, runtime, decisions). This root README covers only what's cross-cutting.

Architecture

Hybrid layout. The Gitea Actions trigger has to live in the source repo (Gitea only fires workflows from .gitea/workflows/ of the pushed-to repo); the real logic lives here. Source-repo workflows are thin stubs that call reusable workflows defined here.

<source-repo>/
  .gitea/workflows/<name>.yml       <- thin stub, calls into this repo

novoyuuparosk-auto-wiki/             <- this repo
  .gitea/workflows/<pipeline>.yml    <- reusable workflows (the actual logic)
  pipelines/<pipeline>/              <- per-pipeline code, schema, templates
  lib/                               <- shared modules (MediaWiki client, etc.)

Wiki

Bot identity

MediaWiki BotPassword issued for user Dubrowski, bot name giteaAutomaton.

Login as Dubrowski@giteaAutomaton with password d8jua48t65jgjp3dfcqhfg7257tri6ui. (Legacy form: username Dubrowski, password giteaAutomaton@d8jua48t65jgjp3dfcqhfg7257tri6ui.)

Plaintext here is acceptable for the current phase (private repo, home-Pi LAN-only Gitea). Rotate before any of those preconditions change. Note that git log retains this string forever, so rotation requires a wiki-side BotPassword regeneration regardless of what happens to this file.

Runner infrastructure

One act_runner instance serves all pipelines. Runs on a Pi 5 (Raspberry Pi OS Bookworm, aarch64) inside the same docker-compose stack that hosts the Gitea instance. Job execution is via the host Docker socket — runner is a container, jobs spawn as sibling containers.

act_runner build: linux-arm64, from the gitea/act_runner Docker image.

Gitea Actions setup (cross-cutting)

Secrets and variables are scoped to user mikkeli (no orgs on this instance), inherited by all repos under that account.

Secrets:

  • WIKI_BOT_USER = Dubrowski@giteaAutomaton
  • WIKI_BOT_PASSWORD = the value from Bot identity above
  • FAPAT = Full-Access PAT under mikkeli, used by source-repo shim workflows to clone this repo at workflow time

Variables:

  • WIKI_BASE_URL = https://wiki.novoyuuparosk.org
  • WIKI_API_URL = https://wiki.novoyuuparosk.org/api.php

Branch naming

  • This repo: automation/<pipeline-name> for pipeline-development branches (e.g., automation/songs).
  • Source repos: each pipeline's README defines the source-side branch convention (e.g., autowiki/<song-slug> in ncmr-songs).

Decisions log (cross-cutting)

Decision Value Date
Architecture Hybrid: stub in source repo, logic in this repo via reusable workflows 2026-06-09
Workflow pattern Gitea reusable workflows (workflow_call); requires Gitea ≥ 1.20 — confirmed 1.25+ 2026-06-09
Runner execution Docker, added as a service to the existing Gitea docker-compose 2026-06-09
Secret/runner scope User-level on mikkeli (no orgs on this instance) 2026-06-09
MediaWiki API path api.php (classic action API) 2026-06-09
Branch naming (this repo) automation/<pipeline> for pipeline-development branches 2026-06-09

Per-pipeline decisions live in each pipeline's README.

Setup checklist (cross-cutting)

Via the Gitea web UI logged in as mikkeli:

  • [v] User-scoped secrets and variables set per Gitea Actions setup above
    • [v] WIKI_BOT_USER
    • [v] WIKI_BOT_PASSWORD
    • [v] FAPAT (Full-Access PAT — value not stored in this README; saved directly into the Gitea secret. Regenerate if lost.)
    • [v] WIKI_BASE_URL
    • [v] WIKI_API_URL

With Pi access:

  • Add act_runner service to the existing Gitea docker-compose
  • Generate a runner registration token at /-/admin/actions/runners (or /user/settings/actions/runners if user-scoped runners are exposed), bake into the compose env, docker compose up -d act_runner, confirm "online" in the Gitea UI

Per-pipeline setup lives in each pipeline's README. Start with pipelines/songs/.

S
Description
CI/CD or in English auto-apply pipelines for the wiki
Readme WTFPL 270 KiB
Languages
Python 97.7%
Dockerfile 2.3%