Skip to content

CI/CD workflow only builds Ruby 3.4 image, missing multi-version support #3

Description

@landovsky

Current Behavior

The GitHub Actions workflow (.github/workflows/docker-build-push.yml) only builds a single Docker image with Ruby 3.4.7, tagged as:

  • landovsky/claude-sandbox:0.1.1 (semantic version)
  • landovsky/claude-sandbox:latest

Expected Behavior

The workflow should build separate images for each Ruby version defined in ruby-versions.yaml, matching the local build behavior:

  • landovsky/claude-sandbox:ruby-3.2 (Ruby 3.2.6)
  • landovsky/claude-sandbox:ruby-3.3 (Ruby 3.3.6)
  • landovsky/claude-sandbox:ruby-3.4 (Ruby 3.4.7)
  • landovsky/claude-sandbox:latest (→ ruby-3.4)

Impact

Current workaround: Projects using Ruby 3.4.x will work fine.

Limitation: Projects requiring Ruby 3.2 or 3.3 cannot use remote sandbox sessions, as the launcher will attempt to pull non-existent image tags (e.g., landovsky/claude-sandbox:ruby-3.2).

Root Cause

The local build script (bin/claude-sandbox build) correctly parses ruby-versions.yaml and builds multiple images (lines 406-451), but the CI/CD workflow hardcodes a single build.

Fix

Update the workflow to:

  1. Parse ruby-versions.yaml (could use yq or parse in bash)
  2. Use a matrix strategy to build each Ruby version
  3. Push all version-specific tags plus semantic version tags

References

  • Local build logic: bin/claude-sandbox lines 419-437
  • Local push logic: bin/claude-sandbox lines 467-479
  • Current workflow: .github/workflows/docker-build-push.yml

Status: Known limitation. The maintainer currently uses Ruby 3.4.7, so this isn't blocking immediate work, but will be addressed for broader compatibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions