Skip to content

feat(ruby): add build-from-source workflow to fill R2 mirror gaps#229

Merged
CalvinAllen merged 1 commit intomainfrom
feat/ruby/build-from-source
Feb 9, 2026
Merged

feat(ruby): add build-from-source workflow to fill R2 mirror gaps#229
CalvinAllen merged 1 commit intomainfrom
feat/ruby/build-from-source

Conversation

@CalvinAllen
Copy link
Contributor

Summary

  • Add gap detection script (scripts/detect-ruby-gaps/) that queries upstream Ruby sources (RubyInstaller + ruby-builder) and compares against R2 metadata to identify missing version+platform combinations
  • Add build-ruby-from-source.yml workflow with three jobs: detect-gaps, build (across all 6 platforms via matrix), and trigger-manifests
  • Fix manifest generator to handle source_url: "built-from-source" by probing R2 for actual binary extensions, and propagate a source field to manifest entries
  • Add auto-replace logic to mirror-binaries so upstream binaries overwrite built-from-source entries during daily sync

Closes #225

Test plan

  • Build and run gap detector locally with --version=3.2.10 to verify 6-platform matrix output
  • Manually dispatch workflow with version: 3.2.10, dry_run: true to verify gap detection output
  • Manually dispatch workflow with dry_run: false and verify builds complete on all platforms
  • After manifest regeneration, verify built-from-source entries have "source": "built-from-source" field
  • Verify dtvem install ruby 3.2.10 works on macOS/Linux after manifests update
  • Verify mirror-sync replaces built-from-source entries when upstream publishes official binaries

Add a GitHub Actions workflow that detects Ruby version+platform
combinations missing from the R2 mirror and builds them from source.
This addresses gaps where upstream ruby-builder hasn't published
builds for certain versions on Linux/macOS.

- Create gap detection script (scripts/detect-ruby-gaps/) that queries
  upstream sources and compares against R2 metadata
- Create build-ruby-from-source.yml workflow with detect-gaps, build,
  and trigger-manifests jobs across all 6 platforms
- Fix manifest generator to handle "built-from-source" source_url by
  probing R2 for actual binary extensions
- Add "source" field to manifest schema and ManifestDownload struct to
  flag built-from-source entries
- Add auto-replace logic to mirror-binaries so upstream binaries
  overwrite built-from-source entries during sync
@CalvinAllen CalvinAllen merged commit 4075aa9 into main Feb 9, 2026
2 checks passed
@CalvinAllen CalvinAllen deleted the feat/ruby/build-from-source branch February 9, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

feat(ci): setup GitHub Action runners for building Ruby from source

1 participant