appraisal-rb/Setup Ruby with rv and ore

Fast Ruby environment setup using rv for Ruby installation and ore for gem management

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Feb 10, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: appraisal-rb/setup-ruby-flash@c74718bcd1715d7aed6eae97b2fe41a4797952f7 # v1.6

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
ruby-versionRuby 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 nodefault
rubygemsThe 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. nodefault
bundlerThe 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. noGemfile.lock
ore-setupInstall 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. noauto
ore-installRun "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. nofalse
bundler-cacheEnable 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. nofalse
working-directoryWorking directory for resolving version files (.ruby-version, etc.) and Gemfile. no.
cache-versionCache version string. Change this to invalidate caches when needed. nov1
rv-versionVersion of rv to install. Either 'latest' or a specific version (e.g., '0.4.0'). Ignored if rv-git-ref is set. nolatest
rv-git-refGit 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-versionVersion of ore to install. Either 'latest' or a specific version (e.g., '0.1.0'). Ignored if ore-git-ref is set. nolatest
ore-git-refGit 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-refGit 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-extensionsSkip building native extensions during gem installation. Either 'true' or 'false'. nofalse
without-groupsGem groups to exclude from installation (comma-separated). Example: 'development,test' no""
ruby-install-retriesNumber of retry attempts for Ruby installation if it fails (e.g., due to GitHub API rate limiting). Uses exponential backoff between retries. no3
no-documentSkip 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. notrue
tokenGitHub token for API calls and downloading releases. The default token is usually sufficient. no${{ github.token }}
use-setup-rubyForce 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-flashForce 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""
namedescription
ruby-versionThe installed Ruby version
ruby-prefixThe prefix/path of the installed Ruby
rv-versionThe installed rv version
rubygems-versionThe installed RubyGems version
bundler-versionThe installed Bundler version
ore-versionThe installed ore version (if ore-install is true)
cache-hitWhether gems were restored from cache