build-cran-binaries/.crow
Repository files (latest commit first)
Filename Latest commit message Latest commit date
pat-s c072b780b2
feat(rebuild): shard the weekly rebuild and make each shard resumable
Split every OS/arch row of weekly-rebuild-missing into three shards and move
the build loop out of the inline R one-liner into local/rebuild-missing.R.

A shard re-derives its outstanding set from the bucket on every start: an
object whose ETag equals CRAN's published MD5sum is still a source fallback and
needs building. That is bincraft's check_s3_root_package() evaluated in bulk,
so a restart resumes rather than replaying thousands of per-package HEADs, and
it stays correct when a sibling shard or a process-updates run finishes work in
the meantime. No progress file, no volume, no database cursor.

Give each shard a 20h wall-clock budget so it exits cleanly instead of having
to be killed. A kill matches neither success nor failure, which is how pipeline
10910 skipped its CDN purge and left ~4600 rebuilt binaries behind stale edge
copies.

Move re-indexing and the purge into weekly-rebuild-reindex.yaml, which depends
on the rebuild and runs on success or failure. Three shards writing one slot's
PACKAGES concurrently would race: update_PACKAGES lists the live bucket, so an
early lister that uploads last publishes an index missing its siblings' work.
2026-08-12 08:27:45 +00:00
..
archive-missed-packages.yaml fix(index): add a slot repair for a broken Built stamp and retire alpine 3.21 (#150) 2026-08-07 09:15:04 +00:00
auto-apply-patches.yaml fix(ci): gate the three ungated pipelines on their own variable (#155) 2026-08-09 10:02:05 +00:00
build-all-versions-install-deps.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
build-all-versions.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
process-updates.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
repair-built-stamp.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
trial-build-registry.yaml fix(ci): gate the three ungated pipelines on their own variable (#155) 2026-08-09 10:02:05 +00:00
weekly-audit-missing.yaml fix(ci): make every manual gate default to a value that matches nothing (#158) 2026-08-09 15:31:14 +00:00
weekly-patch-proposals.yaml fix(ci): gate the three ungated pipelines on their own variable (#155) 2026-08-09 10:02:05 +00:00
weekly-rebuild-missing.yaml feat(rebuild): shard the weekly rebuild and make each shard resumable 2026-08-12 08:27:45 +00:00
weekly-rebuild-reindex.yaml feat(rebuild): shard the weekly rebuild and make each shard resumable 2026-08-12 08:27:45 +00:00