ci: add a reindex-only manual workflow #177

Merged
pat-s merged 1 commit from ci/reindex-only-workflow into main 2026-08-31 09:55:31 +00:00
Owner

Motivation

weekly-rebuild-reindex exists to run after weekly-rebuild-missing: it declares depends_on: weekly-rebuild-missing and is gated on that workflow's weekly_rebuild_missing variable. Triggering it manually therefore also starts hours of package rebuilds.

That is the wrong tool when only the index needs regenerating. After rpkgs/bincraft#113 (v5.1.5), which changes how union_index_records() decides what a per-minor index steers to, every object in the bucket is already correct and only PACKAGES* is stale. Rebuilding to fix an index is pure waste, and the natural cron would take a full cycle to reach every slot.

Change

Adds .crow/reindex.yaml: the index half on its own, manual only, no dependency on a rebuild.

It reuses the same matrix and the same steps as weekly-rebuild-reindex — install the latest bincraft release, republish the generic index, loop the installed R versions republishing each per-minor index, purge the edge. No package is built.

Gated on a new reindex variable so it cannot be started by the rebuild gate, defaulting to none so a manual pipeline creation (which instantiates every file in .crow/) matches no matrix row.

crow pipeline create devxy/build-cran-binaries --var reindex=all
crow pipeline create devxy/build-cran-binaries --var reindex=ubuntu-2404-amd64

Verification

  • crow lint .crow/ passes.
  • Gate is manual-only and evaluates reindex, with no depends_on and no runs_on carried over from the rebuild coupling.
## Motivation `weekly-rebuild-reindex` exists to run after `weekly-rebuild-missing`: it declares `depends_on: weekly-rebuild-missing` and is gated on that workflow's `weekly_rebuild_missing` variable. Triggering it manually therefore also starts hours of package rebuilds. That is the wrong tool when only the index needs regenerating. After rpkgs/bincraft#113 (v5.1.5), which changes how `union_index_records()` decides what a per-minor index steers to, every object in the bucket is already correct and only `PACKAGES*` is stale. Rebuilding to fix an index is pure waste, and the natural cron would take a full cycle to reach every slot. ## Change Adds `.crow/reindex.yaml`: the index half on its own, manual only, no dependency on a rebuild. It reuses the same matrix and the same steps as `weekly-rebuild-reindex` — install the latest bincraft release, republish the generic index, loop the installed R versions republishing each per-minor index, purge the edge. No package is built. Gated on a new `reindex` variable so it cannot be started by the rebuild gate, defaulting to `none` so a manual pipeline creation (which instantiates every file in `.crow/`) matches no matrix row. ```sh crow pipeline create devxy/build-cran-binaries --var reindex=all crow pipeline create devxy/build-cran-binaries --var reindex=ubuntu-2404-amd64 ``` ## Verification - `crow lint .crow/` passes. - Gate is manual-only and evaluates `reindex`, with no `depends_on` and no `runs_on` carried over from the rebuild coupling.
ci: add a reindex-only manual workflow
Some checks failed
ci/crow/manual/reindex/2 Pipeline failed
ci/crow/manual/reindex/17 Pipeline failed
ci/crow/manual/reindex/13 Pipeline failed
ci/crow/manual/reindex/15 Pipeline failed
ci/crow/manual/reindex/11 Pipeline failed
ci/crow/manual/reindex/9 Pipeline failed
ci/crow/manual/reindex/7 Pipeline failed
ci/crow/manual/reindex/12 Pipeline failed
ci/crow/manual/reindex/10 Pipeline failed
ci/crow/manual/reindex/14 Pipeline failed
ci/crow/manual/reindex/1 Pipeline failed
ci/crow/manual/reindex/5 Pipeline failed
ci/crow/manual/reindex/3 Pipeline failed
ci/crow/manual/reindex/16 Pipeline failed
ci/crow/manual/reindex/18 Pipeline failed
ci/crow/manual/reindex/4 Pipeline failed
ci/crow/manual/reindex/6 Pipeline failed
ci/crow/manual/reindex/8 Pipeline failed
a114421631
weekly-rebuild-reindex depends on weekly-rebuild-missing and shares its
gate, so triggering it manually also starts hours of package rebuilds.
That is the wrong tool when only the index needs regenerating: after a
bincraft release that changes how the index is written, the objects in
the bucket are already correct and only PACKAGES* is stale.

This workflow does the index half alone. It installs the latest bincraft
release, republishes the generic and per-R-minor indexes for each slot,
and purges the edge. No package is built.
pat-s merged commit f3077677d7 into main 2026-08-31 09:55:31 +00:00
pat-s deleted branch ci/reindex-only-workflow 2026-08-31 09:55:31 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
devxy/build-cran-binaries!177
No description provided.