Skip to content

Conversation

@rafaelfranca
Copy link
Member

@rafaelfranca rafaelfranca commented Dec 25, 2025

Implements end-to-end automation for detecting new Ruby versions from rbenv/ruby-build and publishing features/images with approval gates.

Key Features:

  • Daily check for new Ruby versions (>= 3.2.0 non-EOL only)
  • Automatic PR creation with auto-merge on CI success
  • Conditional publishing: full rebuild on feature bump, incremental otherwise
  • Single approval gate for all publishing operations
  • Comprehensive workflow annotations and failure notifications

Workflows:

  • check-ruby-versions.yaml: Daily cron + manual trigger for detection
  • publish-ruby-updates.yaml: Handles feature/image publishing with approval
  • Modified release-features.yaml: Excludes Ruby feature from batch publish
  • Modified publish-new-image-version.yaml: Uses dynamic matrix from JSON

Scripts:

  • find-new-ruby-versions: Fetches and filters versions from ruby-build
  • check-and-create-pr: Orchestrates detection and PR creation
  • create-ruby-versions-pr: Creates formatted PR with automation labels
  • check-feature-bump: Detects feature version changes in commits
  • extract-new-ruby-versions: Parses new versions from git diff
  • get-current-image-version: Gets latest ruby-* tag
  • Modified add-ruby-version: Uses JSON storage instead of YAML

Infrastructure:

  • .github/ruby-versions.json: Single source of truth for version matrix
  • Uses RUBY_AUTOMATION_PAT for proper workflow triggering
  • Proper stdout/stderr separation for script composition
  • yq installed in devcontainer for JSON/YAML manipulation

Workflow Behavior:

  • Feature bump: Publish feature → create release → tag → build all versions
  • No bump: Trigger builds for new Ruby versions only
  • Approval step shows summary of what will be published
  • Failure notifications create GitHub issues automatically

Closes #105

Implements end-to-end automation for detecting new Ruby versions from
rbenv/ruby-build and publishing features/images with approval gates.

Key Features:
- Daily check for new Ruby versions (>= 3.2.0 non-EOL only)
- Automatic PR creation with auto-merge on CI success
- Conditional publishing: full rebuild on feature bump, incremental otherwise
- Single approval gate for all publishing operations
- Comprehensive workflow annotations and failure notifications

Workflows:
- check-ruby-versions.yaml: Daily cron + manual trigger for detection
- publish-ruby-updates.yaml: Handles feature/image publishing with approval
- Modified release-features.yaml: Excludes Ruby feature from batch publish
- Modified publish-new-image-version.yaml: Uses dynamic matrix from JSON

Scripts:
- find-new-ruby-versions: Fetches and filters versions from ruby-build
- check-and-create-pr: Orchestrates detection and PR creation
- create-ruby-versions-pr: Creates formatted PR with automation labels
- check-feature-bump: Detects feature version changes in commits
- extract-new-ruby-versions: Parses new versions from git diff
- get-current-image-version: Gets latest ruby-* tag
- Modified add-ruby-version: Uses JSON storage instead of YAML

Infrastructure:
- .github/ruby-versions.json: Single source of truth for version matrix
- Uses RUBY_AUTOMATION_PAT for proper workflow triggering
- Proper stdout/stderr separation for script composition
- yq installed in devcontainer for JSON/YAML manipulation

Workflow Behavior:
- Feature bump: Publish feature → create release → tag → build all versions
- No bump: Trigger builds for new Ruby versions only
- Approval step shows summary of what will be published
- Failure notifications create GitHub issues automatically
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Find a way to release a new image for released Ruby versions automatically

1 participant