Skip to content

Add TruffleRuby in CI#29

Merged
hsbt merged 1 commit intoruby:masterfrom
eregon:truffleruby-ci
Mar 6, 2026
Merged

Add TruffleRuby in CI#29
hsbt merged 1 commit intoruby:masterfrom
eregon:truffleruby-ci

Conversation

@eregon
Copy link
Member

@eregon eregon commented Feb 12, 2026

Needs truffleruby/truffleruby#4159 and a dev build

@eregon eregon force-pushed the truffleruby-ci branch 2 times, most recently from c27967e to 6e8c796 Compare February 12, 2026 15:20
@eregon eregon marked this pull request as ready for review February 12, 2026 21:11
@eregon
Copy link
Member Author

eregon commented Mar 6, 2026

@hsbt or @olleolleolle Could you merge this PR?
I think only you have permissions to merge on this repository (or at least both I and Stan don't have it).

with:
min_version: 2.6
engine: cruby
versions: '["truffleruby-head"]'
Copy link
Member Author

Choose a reason for hiding this comment

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

truffleruby-head and not truffleruby because it needs changes from truffleruby/truffleruby#4159 which are not in a release yet.

@hsbt
Copy link
Member

hsbt commented Mar 6, 2026

Merging is fine, but TruffleRuby is too unstable. CI gets stuck and fails every time something happens.

As you probably know, I'll remove it immediately if I see a failure. Please do your best to stabilize it first.

@hsbt hsbt merged commit 7da9b82 into ruby:master Mar 6, 2026
41 checks passed
@eregon
Copy link
Member Author

eregon commented Mar 6, 2026

Thank you for merging.
This will help me remove the custom readline implementation in TruffleRuby (based on JLine) and just use the same code & logic as CRuby: truffleruby/truffleruby#3018

but TruffleRuby is too unstable. CI gets stuck and fails every time something happens.
As you probably know, I'll remove it immediately if I see a failure. Please do your best to stabilize it first.

I'm truly sorry about such cases.
Could you please include @eregon in the PR description when removing it so I know about it and can learn from such failures? (or whatever is most convenient for you, if e.g. a Slack message is more convenient due to pushing a commit directly to master or so, unfortunately @-mentions in commits no longer work).

I will also try to improve https://github.com/truffleruby/truffleruby-gem-tracker to detect cases of the truffleruby CI job being removed reliably (it's not trivial due to having to handle job cancellations, etc).

For instance with ruby/ostruct#68 I can't see the failure now because the log is no longer accessible, so I can't know what was the problem.
Maybe it was the transient concurrent Hash access within Psych/Bundler (truffleruby/truffleruby#3869), that was occuring in several CIs so I prioritized that and fixed it in 33.0.0.

I think TruffleRuby releases (ruby-version: truffleruby) are fairly stable overall, comparable to CRuby releases (ruby-version: ruby).
truffleruby-head is less stable than releases, similar to ruby-head, so I try to use truffleruby instead of truffleruby-head in CI whenever possible now for improving stability.

I'd also be OK to add continue-on-error at job-level but I think that doesn't help much as the job would still appear red in the GitHub UI (at least in the PR view and when looking at commit statuses). It would help if other CI jobs depend on it though, as they would still run then (but not a common case).
continue-on-error at step-level seems not a good option because it would hide all failures, including those caused by incompatible changes in the gem.

@eregon
Copy link
Member Author

eregon commented Mar 6, 2026

truffleruby-head is less stable than releases, similar to ruby-head, so I try to use truffleruby instead of truffleruby-head in CI whenever possible now for improving stability.

Regarding that, for CIs using uses: ruby/actions/.github/workflows/ruby_versions.yml@master, maybe we should only include truffleruby instead of truffleruby + truffleruby-head for improved stability in https://github.com/ruby/actions/blob/61edecb7338403daeea6ede2571892dba0cc0ffc/tool/update_ci_versions.rb#L23 ?
With the more frequent TruffleRuby releases I think that would be fine.

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.

3 participants