Skip to content

Ruby support#751

Merged
cretz merged 3 commits intomainfrom
ruby-support
Feb 13, 2026
Merged

Ruby support#751
cretz merged 3 commits intomainfrom
ruby-support

Conversation

@cretz
Copy link
Member

@cretz cretz commented Feb 11, 2026

What was changed

  • Added sdkbuild/ruby.go — BuildRubyProgram implementing the Program interface, with support for versioned gem installs and local SDK path builds
  • Added cmd/run_ruby.go — BuildRubyProgram (version resolution from Gemfile) and RunRubyExternal (CLI arg construction)
  • Modified cmd/run.go and cmd/prepare.go — added rb/ruby lang support to normalization, expansion, and dispatch
  • Added Ruby harness (harness/ruby/) — harness gem with Feature struct, register_feature, and runner.rb entry point (JSONL summary over TCP)
  • Added .rubocop.yml targeting Ruby 4.0
  • Added two feature files: activity/basic_no_workflow_timeout/feature.rb and signal/basic/feature.rb
  • Added dockerfiles/rb.Dockerfile — multi-stage build with BUNDLE_APP_CONFIG override to keep vendored gems in the prepared dir
  • Added features-tests-rb service to dockerfiles/docker-compose.yml
  • Added CI workflows: .github/workflows/ruby.yaml (reusable), plus build-ruby, feature-tests-ruby, and build-rb-docker-images jobs in ci.yaml and
    all-docker-images.yaml
  • Moved all ${{ github.event.inputs.* }} references in CI to env: blocks (fixes semgrep shell injection findings)
  • Updated README.md with Ruby prerequisites and usage

Checklist

  1. Closes Support Ruby in this features repo #585

@semgrep-managed-scans
Copy link

Semgrep found 1 run-shell-injection finding:

Using variable interpolation ${{...}} with github context data in a run: step could allow an attacker to inject their own code into the runner. This would allow them to steal secrets and code. github context data can have arbitrary user input and should be treated as untrusted. Instead, use an intermediate environment variable with env: to store the data and use the environment variable in the run: script. Be sure to use double-quotes the environment variable, like this: "$ENVVAR".

@cretz cretz force-pushed the ruby-support branch 3 times, most recently from 8dea432 to 66b70d9 Compare February 11, 2026 22:54
@cretz cretz marked this pull request as ready for review February 12, 2026 13:14
@cretz cretz requested a review from a team as a code owner February 12, 2026 13:14
Copy link
Member

@Sushisource Sushisource left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I can't remember now what the issue was that we thought would've been caught by having Ruby features, but, if the basic tests added here wouldn't cover it, would be good to add.

@cretz
Copy link
Member Author

cretz commented Feb 13, 2026

if the basic tests added here wouldn't cover it, would be good to add.

It would be caught, it was basically that you couldn't even poll against newer server released to cloud (but didn't have stable OSS tag yet) due to added worker deployment checks. But this does make clear we need to update https://github.com/temporalio/temporal/blob/main/.github/workflows/features-integration.yml.

@cretz cretz merged commit f1535ed into main Feb 13, 2026
26 checks passed
@cretz cretz deleted the ruby-support branch February 13, 2026 15:16
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.

Support Ruby in this features repo

2 participants