Skip to content

Commit

Permalink
Expose 3.4-asan Ruby builds from ruby-dev-builder
Browse files Browse the repository at this point in the history
**What does this PR do?**

This PR provides the final piece of the puzzle to fix #682: now that
ruby-dev-builder is building `3.4-asan` Rubies since
ruby/ruby-dev-builder#15, we can make them
available for use.

**Motivation:**

At Datadog, we're using ASan builds to check for issues
[in our library](https://github.com/datadog/dd-trace-rb),
and having a `3.4-asan` build improves the experience of having
these checks be a required CI step. Using the ASan builds built from
ruby-head means our CI could break because of unrelated issues/changes
from ruby-head.

**Additional Notes:**

`yarn` was trying really hard to update a bunch of things, which
generated A LOT of diff noise. I've manually pared them down just
to the actual changes related to adding the new variant so the
diff makes a bit more sense.

**How to test the change?**

I've already tested this in
https://github.com/DataDog/dd-trace-rb/actions/runs/13392865620/job/37696781848
and it seems to be working fine!
  • Loading branch information
ivoanjo authored and eregon committed Feb 24, 2025
1 parent 88a8155 commit 04c2e2b
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 4 deletions.
1 change: 1 addition & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jobs:
- { os: windows-2025, ruby: mswin }
- { os: windows-2025, ruby: ucrt }
- { os: ubuntu-24.04, ruby: asan }
- { os: ubuntu-24.04, ruby: 3.4-asan }
exclude:
# https://github.com/ruby/setup-ruby/issues/496
- { os: ubuntu-22.04, ruby: '2.2' }
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
Native extensions are automatically compiled with AddressSanitizer when using `ruby-asan`.
`ruby-asan` is currently only available on `ubuntu-24.04`.

`ruby-3.4-asan` is similar to `ruby-asan` but built from the latest stable 3.4 release tag.
Like `ruby-asan`, it's currently only available on `ubuntu-24.04`.

Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64
builds, and `mswin` is a MSVC/VS 2022 build.

Expand Down
3 changes: 2 additions & 1 deletion common.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ export async function time(name, block) {
}

export function isHeadVersion(rubyVersion) {
return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan'].includes(rubyVersion)
// 3.4-asan counts as "head" because the version cannot be selected -- you can only get whatever's latest
return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan', '3.4-asan'].includes(rubyVersion)
}

export function isStableVersion(engine, rubyVersion) {
Expand Down
5 changes: 3 additions & 2 deletions dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ruby-builder-versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7",
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5", "3.3.6", "3.3.7",
"3.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2",
"head", "debug", "asan"
"head", "debug", "asan", "3.4-asan"
],
"jruby": [
"9.1.17.0",
Expand Down

0 comments on commit 04c2e2b

Please sign in to comment.