Scheduled CI job to regenerate bestiary search index #14

Open
opened 2026-03-25 14:59:45 +01:00 by dostulata · 0 comments
Owner

Summary

The bestiary search index (data/bestiary/index.json) is generated offline by scripts/generate-bestiary-index.mjs from a local clone of the 5etools repository. Currently this is a manual process. A scheduled CI job could automate detection of upstream changes and open a PR when the index needs updating.

Context

See ADR-004 (docs/adr/004-on-demand-bestiary-loading.md). The index changes infrequently — new D&D source books release a few times per year — so this is low priority. The manual process works fine at current scale.

Acceptance Criteria

  • A scheduled Gitea Actions workflow (e.g., weekly) clones the 5etools repo, runs generate-bestiary-index.mjs, and compares the output to the committed index
  • If the index changed, the job opens a PR with the updated data/bestiary/index.json
  • The PR includes a summary of what changed (new sources, creature count delta)
  • The existing manual workflow continues to work as a fallback

Notes

  • Low priority — the manual process is sufficient for the current release cadence
  • The 5etools repo is large; the job should use sparse checkout (data/bestiary/ and data/ directories only) to minimize clone time
## Summary The bestiary search index (`data/bestiary/index.json`) is generated offline by `scripts/generate-bestiary-index.mjs` from a local clone of the 5etools repository. Currently this is a manual process. A scheduled CI job could automate detection of upstream changes and open a PR when the index needs updating. ## Context See ADR-004 (`docs/adr/004-on-demand-bestiary-loading.md`). The index changes infrequently — new D&D source books release a few times per year — so this is low priority. The manual process works fine at current scale. ## Acceptance Criteria - [ ] A scheduled Gitea Actions workflow (e.g., weekly) clones the 5etools repo, runs `generate-bestiary-index.mjs`, and compares the output to the committed index - [ ] If the index changed, the job opens a PR with the updated `data/bestiary/index.json` - [ ] The PR includes a summary of what changed (new sources, creature count delta) - [ ] The existing manual workflow continues to work as a fallback ## Notes - Low priority — the manual process is sufficient for the current release cadence - The 5etools repo is large; the job should use sparse checkout (`data/bestiary/` and `data/` directories only) to minimize clone time
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dostulata/initiative#14