Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
8d27f39
Improve the mise.toml parser to conform to the TOML specification
pan93412 Jan 30, 2026
c7aa9f4
Move check-new-windows-versions.yml workflow from ruby/ruby-builder t…
eregon Feb 2, 2026
aaddd68
new-versions.rb is no longer used for RubyInstaller releases
eregon Feb 2, 2026
ede5b72
Shorten workflow name
eregon Feb 2, 2026
67178a2
Improve the automated PR description
eregon Feb 2, 2026
09a7688
Add jruby-10.0.3.0
ruby-builder-bot Feb 3, 2026
14a4f5d
looks -> is
eregon Feb 3, 2026
2a50164
Bump actions/checkout from 4 to 6
dependabot[bot] Feb 3, 2026
0f5cc21
Use actions/checkout@v6 in README too
eregon Feb 3, 2026
9fd324a
Bump fast-xml-parser from 5.3.3 to 5.3.4
dependabot[bot] Jan 30, 2026
0fc657d
Document the role of the setup-ruby release team and maintainers
eregon Feb 3, 2026
7f562e2
Update Credits in README
eregon Feb 3, 2026
19a9bab
Bump fast-xml-parser from 5.3.4 to 5.3.6
dependabot[bot] Feb 18, 2026
0fa9651
Bump minimatch from 3.1.2 to 3.1.4
dependabot[bot] Feb 25, 2026
896e71e
Bump fast-xml-parser from 5.3.6 to 5.4.1
dependabot[bot] Feb 28, 2026
19a43a6
Add jruby-10.0.4.0
ruby-builder-bot Mar 4, 2026
b3cff1b
Add support for Windows Server Standard Evaluation
jbaiza Mar 2, 2026
7413847
Set HOME variable from OS information
jbaiza Mar 2, 2026
6ca151f
Leave only basic comment about env variable change
jbaiza Mar 6, 2026
9d13dd6
Add ruby-3.4.9
ruby-builder-bot Mar 11, 2026
4eb9f11
Update Node to 24
eregon Mar 11, 2026
ea73ddb
Update README to remove JRuby version notes
headius Mar 11, 2026
dffb23f
Update CRuby releases on Windows
ruby-builder-bot Mar 14, 2026
c984c1a
Add ruby-4.0.2
ruby-builder-bot Mar 16, 2026
319994f
Update CRuby releases on Windows
ruby-builder-bot Mar 17, 2026
2d3d80a
Merge tag 'v1.295.0' into sync/upstream-v1.295.0
guptaankit015 Mar 24, 2026
5876f50
chore: rebuild dist and yarn.lock after upstream sync
guptaankit015 Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/check-new-windows-versions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Check new RubyInstaller releases
on:
schedule:
- cron: '0 7,19 * * *'
workflow_dispatch:

jobs:
check_windows_versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- run: ruby generate-windows-versions.rb

- id: diff
run: git diff --exit-code
continue-on-error: true

- if: ${{ steps.diff.outcome == 'failure' }} # changed
run: ./pre-commit
shell: bash

# See https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#push-pull-request-branches-to-a-fork
- if: ${{ steps.diff.outcome == 'failure' }} # changed
uses: peter-evans/create-pull-request@v8
id: pr
with:
push-to-fork: ruby-builder-bot/setup-ruby
author: ruby-builder-bot <98265520+ruby-builder-bot@users.noreply.github.com>
committer: ruby-builder-bot <98265520+ruby-builder-bot@users.noreply.github.com>
title: Update CRuby releases on Windows
commit-message: Update CRuby releases on Windows
body: |
Automated PR from the check-new-windows-versions.yml workflow.

@eregon @larskanis Please merge this PR if the diff is correct.
And then release setup-ruby by [running the release workflow](https://github.com/ruby/setup-ruby/actions/workflows/release.yml).
branch: windows
delete-branch: true
token: ${{ secrets.PR_FROM_RUBY_BUILDER_TOKEN }}

- if: ${{ steps.diff.outcome == 'failure' }} # changed
name: PR URL
run: echo "${{ steps.pr.outputs.pull-request-url }}"
shell: bash
22 changes: 20 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,24 @@ $ cp pre-commit .git/hooks/pre-commit
This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254).
If you do not see a new version more than 24 hours after it was released feel free to file an issue.

## Release
## Release team

Maintainers can create a release automatically by running [this workflow](https://github.com/ruby/setup-ruby/actions/workflows/release.yml).
The current release team is @eregon @MSP-Greg @ntkme @flavorjones @larskanis @headius.
They all have write access to the `setup-ruby` repository, to be able to merge and release `ruby-builder-bot` PRs adding new versions.
The `ruby-builder-bot` PRs are created by [this workflow](https://github.com/ruby/ruby-builder/actions/workflows/check-new-releases.yml) which runs every hour.

The release team can create releases by running [this workflow](https://github.com/ruby/setup-ruby/actions/workflows/release.yml).

The release team and more specifically @larskanis can run [the workflow to check for new RubyInstaller releases](https://github.com/ruby/setup-ruby/actions/workflows/check-new-windows-versions.yml) to speed things up (otherwise it's run twice a day).

The release team must not merge other PRs than the ones from `ruby-builder-bot` (unless they are also setup-ruby maintainers).

## Maintainers

@eregon is the lead maintainer and creator of this action.
Any design change (e.g. new input, different way to do things) must have his approval.

@MSP-Greg @ntkme are maintainers of setup-ruby and should feel free to merge bug fixes, etc.
They should request a review on their PR from another maintainer but they don't have to wait for the review if the fix is urgent (e.g. `setup-ruby` broke in some cases and the fix is obvious).

Naturally maintainers can also [release setup-ruby](https://github.com/ruby/setup-ruby/actions/workflows/release.yml) so the changes from their PR get published.
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:

| Interpreter | Versions |
| ----------- | -------- |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.0.1, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 10.0.2.0, head |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.0.2, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 10.0.4.0, head |
| `truffleruby` | 19.3.0 - 33.0.1, head |
| `truffleruby+graalvm` | 21.2.0 - 33.0.1, head |

Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4' # Not needed with a .ruby-version, .tool-versions or mise.toml
Expand All @@ -101,7 +101,7 @@ jobs:
ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4', head, jruby, jruby-head, truffleruby, truffleruby-head]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
Expand All @@ -124,7 +124,7 @@ jobs:
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
Expand Down Expand Up @@ -257,8 +257,6 @@ It is recommended to first get your build working on Ubuntu and macOS before try
* The `PATH` contains [multiple compiler toolchains](https://github.com/ruby/setup-ruby/issues/19). Use `where.exe` to debug which tool is used.
* For Ruby ≥ 2.4, MSYS2 is prepended to the `Path`, similar to what RubyInstaller2 does.
* For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`.
* Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)).
* JRuby on Windows has multiple issues ([jruby/jruby#7106](https://github.com/jruby/jruby/issues/7106), [jruby/jruby#7182](https://github.com/jruby/jruby/issues/7182)).
* When compiling extension code, note that the packages required to build Ruby are included when using Windows 2022. Additional packages can be installed with [setup-ruby-pkgs](https://github.com/ruby/setup-ruby-pkgs) or via MSYS2's `pacman`. These packages may be required when installing or updating Ruby stdlib extension gems.

## Versioning
Expand Down Expand Up @@ -300,6 +298,7 @@ Please [update](https://github.com/ruby/setup-ruby/releases/tag/v1.13.0) if you

## Credits

The current maintainer of this action is @eregon.
The creator of this action is @eregon.
The current maintainers are @eregon @MSP-Greg @ntkme.
Most of the Windows logic is based on work by MSP-Greg.
Many thanks to MSP-Greg and Lars Kanis for the help with Ruby Installer.
2 changes: 1 addition & 1 deletion action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,5 @@ outputs:
ruby-prefix:
description: 'The prefix of the installed ruby'
runs:
using: 'node20'
using: 'node24'
main: 'dist/index.js'
2 changes: 1 addition & 1 deletion common.js
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ export function getOSNameVersionArch() {

function findWindowsVersion() {
const version = os.version()
const match = version.match(/^Windows(?: Server)? (\d+) (?:Datacenter|Enterprise)/)
const match = version.match(/^Windows(?: Server)? (\d+) (?:Standard|Datacenter|Enterprise)/)
if (match) {
return match[1]
} else {
Expand Down
Loading
Loading