appraisal-rb/Setup Ruby with rv and ore
Fast Ruby environment setup using rv for Ruby installation and ore for gem management
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Feb 10, 2026
- License
- MIT
Pinned Snippet
uses: appraisal-rb/setup-ruby-flash@c74718bcd1715d7aed6eae97b2fe41a4797952f7 # v1.6tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| ruby-version | Ruby version to install. Reads from .ruby-version, .tool-versions, or mise.toml if set to 'default'. Use 'ruby' for latest stable MRI Ruby version. Supported versions: 3.2, 3.3, 3.4, 4.0 | no | default |
| rubygems | The version of RubyGems to use. Either 'default' (the default), 'latest', or a version number (e.g., 3.3.5). For 'default', no action is taken and the version of RubyGems that comes with Ruby by default is used. For 'latest', `gem update --system` is run to update to the latest compatible RubyGems version. If a version number is given, `gem update --system <version>` is run to update to that version. | no | default |
| bundler | The version of Bundler to install. Either 'Gemfile.lock' (the default), 'default', 'latest', 'none', or a version number. For 'Gemfile.lock', the version of the BUNDLED WITH section from the Gemfile.lock if it exists. For 'default', uses the Bundler version shipped with Ruby if it's 2.2+, otherwise installs 'latest'. For 'latest', installs the latest compatible Bundler version (Bundler 2 on Ruby 3.2+). For 'none', nothing is done. | no | Gemfile.lock |
| ore-setup | Install ore (the gem manager) in the environment. Either 'true', 'false', or 'auto' (default). When 'auto', ore is installed if ore-install or bundler-cache is true. When 'true', ore is always installed even if ore-install is false. When 'false', ore is never installed. Use 'true' when you want ore available but will run ore commands manually. | no | auto |
| ore-install | Run "ore install" command to install gems from lockfile. Either 'true' or 'false'. Note: Requires ore-setup to be 'true' or 'auto' (with bundler-cache enabled). When false, gems are not installed automatically, but ore will still be available if ore-setup is true. | no | false |
| bundler-cache | Enable Bundler caching (alias for ore-install for ruby/setup-ruby compatibility). When true, acts the same as ore-install: true. Either 'true' or 'false'. Note: When using fallback to ruby/setup-ruby, this is passed through directly. | no | false |
| working-directory | Working directory for resolving version files (.ruby-version, etc.) and Gemfile. | no | . |
| cache-version | Cache version string. Change this to invalidate caches when needed. | no | v1 |
| rv-version | Version of rv to install. Either 'latest' or a specific version (e.g., '0.4.0'). Ignored if rv-git-ref is set. | no | latest |
| rv-git-ref | Git branch, tag, or commit SHA to build rv from source. When set, rv will be built from the specified git ref instead of using a release. Supports fork syntax: Use 'owner:ref' to build from a fork (e.g., 'pboling:feat/my-fix'). Examples: 'main', 'feat/new-feature', 'v0.5.0-beta', 'pboling:feat/github-token-authenticated-requests' Rust toolchain is automatically installed if needed. | no | "" |
| ore-version | Version of ore to install. Either 'latest' or a specific version (e.g., '0.1.0'). Ignored if ore-git-ref is set. | no | latest |
| ore-git-ref | Git branch, tag, or commit SHA to build ore from source. When set, ore will be built from the specified git ref instead of using a release. Supports fork syntax: Use 'owner:ref' to build from a fork (e.g., 'yourname:feat/my-fix'). Examples: 'main', 'feat/a-cool-feature', 'v0.19.0-alpha', 'contriboss:feat/bundle-support' Go toolchain is automatically installed if needed. | no | "" |
| gfgo-git-ref | Git branch, tag, or commit SHA to build gemfile-go from source when building ore from source. Only takes effect when ore-git-ref is also set. Creates a go.work workspace to use local gemfile-go. Supports fork syntax: Use 'owner:ref' to build from a fork (e.g., 'yourname:feat/my-fix'). Examples: 'main', 'feat/new-feature', 'v1.2.3', 'contriboss:feat/enhancement' | no | "" |
| skip-extensions | Skip building native extensions during gem installation. Either 'true' or 'false'. | no | false |
| without-groups | Gem groups to exclude from installation (comma-separated). Example: 'development,test' | no | "" |
| ruby-install-retries | Number of retry attempts for Ruby installation if it fails (e.g., due to GitHub API rate limiting). Uses exponential backoff between retries. | no | 3 |
| no-document | Skip generating documentation for installed gems (ri/rdoc). Either 'true' or 'false'. Speeds up gem installation significantly. Applies to 'gem install' and 'gem update --system' commands. Creates .gemrc (if it doesn't exist) to affect Bundler/ore gem installations. Preserves existing .gemrc files without modification. | no | true |
| token | GitHub token for API calls and downloading releases. The default token is usually sufficient. | no | ${{ github.token }} |
| use-setup-ruby | Force fallback to ruby/setup-ruby for specific Ruby versions. Use this to benchmark setup-ruby-flash vs setup-ruby for the same version. Accepts the same format as ruby-version in a matrix: ['3.4', '4.0'] or just '3.4' Takes precedence over automatic detection. | no | "" |
| use-setup-ruby-flash | Force use of setup-ruby-flash for specific Ruby versions. Use this for forward compatibility when rv adds support for new versions. Accepts the same format as ruby-version in a matrix: ['head', 'jruby'] or just 'head' Takes precedence over automatic detection and use-setup-ruby. Warning: Will fail if rv doesn't actually support the version. | no | "" |
Outputs
| name | description |
|---|---|
| ruby-version | The installed Ruby version |
| ruby-prefix | The prefix/path of the installed Ruby |
| rv-version | The installed rv version |
| rubygems-version | The installed RubyGems version |
| bundler-version | The installed Bundler version |
| ore-version | The installed ore version (if ore-install is true) |
| cache-hit | Whether gems were restored from cache |