docs: split root README cross-cutting; expand songs pipeline README
This commit is contained in:
+40
-17
@@ -2,7 +2,8 @@
|
||||
|
||||
Publishes lyric pages from `mikkeli/ncmr-songs` to `https://wiki.novoyuuparosk.org`.
|
||||
|
||||
For the source-file contract (frontmatter and body conventions), see [SCHEMA.md](SCHEMA.md). This README covers the pipeline implementation and its runtime.
|
||||
- Source-file contract (frontmatter and body conventions): [SCHEMA.md](SCHEMA.md)
|
||||
- Cross-cutting setup (wiki URL, bot identity, runner, Gitea secrets/variables): [repo root README](../../README.md)
|
||||
|
||||
## v1 scope
|
||||
|
||||
@@ -21,21 +22,32 @@ Deferred (schema reserves the fields; renderer doesn't yet act on them):
|
||||
- Multi-language metadata (the body conveys what languages exist; renderer doesn't introspect)
|
||||
- Auto-generated album index pages (intentionally NOT done — user writes album category-page descriptions freeform)
|
||||
|
||||
## Source repo and branch convention
|
||||
|
||||
Source repo: `mikkeli/ncmr-songs`. The pipeline triggers on push to `master`.
|
||||
|
||||
**Branch convention in `ncmr-songs`**: per-song short-lived branches named `autowiki/<song-slug>` (e.g., `autowiki/pulse`). Create when staging edits, merge to master when ready to publish, delete after one cycle.
|
||||
|
||||
**Excluded paths** (won't trigger the pipeline):
|
||||
|
||||
- `wip/**`
|
||||
- `README.md`, `.gitignore`, `.claude/**`
|
||||
|
||||
## Invocation
|
||||
|
||||
The pipeline is invoked via a reusable Gitea Actions workflow (`/.gitea/workflows/publish-songs.yml` in this repo). The `ncmr-songs` repo holds a thin stub workflow that calls into this one on push to `master`.
|
||||
The pipeline is invoked via a reusable Gitea Actions workflow (`.gitea/workflows/publish-songs.yml` in this repo). The `ncmr-songs` repo holds a thin stub workflow (`.gitea/workflows/publish.yml`) that calls into this one on push to `master`.
|
||||
|
||||
Required environment at runtime:
|
||||
### Workflow inputs and secrets
|
||||
|
||||
| Variable | Source | Purpose |
|
||||
|---|---|---|
|
||||
| `WIKI_API_URL` | Gitea variable | MediaWiki action API endpoint |
|
||||
| `WIKI_BASE_URL` | Gitea variable | Wiki base URL (used in the banner link) |
|
||||
| `WIKI_BOT_USER` | Gitea secret | Bot login (`Dubrowski@giteaAutomaton`) |
|
||||
| `WIKI_BOT_PASSWORD` | Gitea secret | BotPasswords value |
|
||||
| `SOURCE_DIR` | workflow input | Path to checked-out `ncmr-songs` working tree |
|
||||
| `SOURCE_REF` | workflow input | The pushed-to commit SHA |
|
||||
| `SOURCE_BASE_REF` | workflow input | The SHA prior to the push (for diff-based change detection) |
|
||||
| Name | Kind | Source | Purpose |
|
||||
|---|---|---|---|
|
||||
| `WIKI_API_URL` | variable | Gitea (cross-cutting) | MediaWiki action API endpoint |
|
||||
| `WIKI_BASE_URL` | variable | Gitea (cross-cutting) | Wiki base URL (used in the banner link) |
|
||||
| `WIKI_BOT_USER` | secret | Gitea (cross-cutting) | Bot login |
|
||||
| `WIKI_BOT_PASSWORD` | secret | Gitea (cross-cutting) | BotPasswords value |
|
||||
| `SOURCE_DIR` | workflow input | from the stub | Path to checked-out `ncmr-songs` working tree |
|
||||
| `SOURCE_REF` | workflow input | from the stub | The pushed-to commit SHA |
|
||||
| `SOURCE_BASE_REF` | workflow input | from the stub | The SHA prior to the push (for diff-based change detection) |
|
||||
|
||||
## Dependencies
|
||||
|
||||
@@ -56,11 +68,22 @@ Before the first run, two things must exist on the wiki:
|
||||
|
||||
## Modes
|
||||
|
||||
The pipeline supports two invocation modes via the entry point:
|
||||
|
||||
- **Incremental** (default, triggered by push): publishes only files changed between `SOURCE_BASE_REF` and `SOURCE_REF`.
|
||||
- **Incremental** (default, triggered by push to `master`): publishes only files changed between `SOURCE_BASE_REF` and `SOURCE_REF`.
|
||||
- **Full** (`--all` flag, triggered by `workflow_dispatch`): re-publishes every publishable file in the source tree. Use after template or renderer changes.
|
||||
|
||||
## Not yet implemented
|
||||
## Decisions log (songs pipeline)
|
||||
|
||||
This README will grow as the pipeline does. Current commit ships only the schema and this overview — no executable code yet.
|
||||
| Decision | Value | Date |
|
||||
|---|---|---|
|
||||
| Metadata source | YAML frontmatter inside each `.md` (see [SCHEMA.md](SCHEMA.md)) | 2026-06-09 |
|
||||
| Body rendering | Pandoc-based, with a thin Python pre/post-processor | 2026-06-09 |
|
||||
| Excluded paths | `wip/**`, plus repo-meta files | 2026-06-09 |
|
||||
| Page template | Designed from scratch (no existing wiki pages to mirror) | 2026-06-09 |
|
||||
| Album landing pages | Auto-injected `[[Category:<album>]]`; the wiki category page is user-written and not overwritten by the pipeline | 2026-06-09 |
|
||||
| Source-repo branch convention | `autowiki/<song-slug>` short-lived branches in `ncmr-songs` | 2026-06-09 |
|
||||
|
||||
## Status
|
||||
|
||||
Schema and pipeline overview committed. No executable code yet.
|
||||
|
||||
**Next**: implement renderer (Python module), workflow YAMLs (this repo + `ncmr-songs` stub), `Template:Auto-generated` wikitext, and end-to-end dry-run on `ses/pulse.md`.
|
||||
|
||||
Reference in New Issue
Block a user