-
-
Notifications
You must be signed in to change notification settings - Fork 315
Rewrite ruby/setup-msys2-gcc #762
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
42e2c97
to
ad6e0db
Compare
363de67
to
a8d7546
Compare
15a109c
to
7168d8b
Compare
Curious, why the need for 'Revert back to use |
Sorry, was just testing something and pushed to the wrong branch. |
I've quickly looked as this, and everything seems ok. We're getting close to finalizing the changes to |
From the PR title I thought this was a ruby/setup-msys2-gcc PR 😅 |
Re setup-msys2-gcc: Much of the Windows' code was written when GHA was using 2016 & 2019 images. There have been a lot of changes in the images since then. The only MSYS compatibility issue came up with the upgrade from OpenSSL 1.1 to 3.0. At the time, that only effected Ruby major.minor versions. I was thinking about how to restructure it, and I wanted to move to a more data/configuration centric setup (using yaml, json, etc) vs the current 'method centric' code. Also, recently two updates to MSYS2 have made things messy, and they require resolving to the Ruby patch level. Anyway, @ntkme grabbed it and updated the code, and we've been testing it and making small changes. Alot more information has moved to the workflow file, along with the build tools package info and Ruby version constraints moving to It will make it much easier to quickly update things when MSYS2 issue arise. The information re which tool-chain to install has always been located in this repo, and now it's retrieved via a json file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great, thank you for your work on this!
I guess the order is merge ruby/setup-msys2-gcc#26, create the release & assets, then update this PR to use ruby/setup-msys2-gcc links, and merge this PR?
Correct. |
The PR has been merged in https://github.com/ruby/setup-msys2-gcc |
@eregon Release artifacts have been uploaded and I've updated this PR to use ruby/setup-msys2-gcc. There is a truffleruby test that's failing but it's unrelated to my change. |
This PR include a few changes for windows:
$RUNNER_TEMP\$base
and a junction link is created at original$rubyPrefix
if$rubyPrefix
is on the slow disk.$RUNNER_TEMP\msys64
and a junction link is created at$rubyPrefix\msys64
.ridk enable
step by using proper serialization.Performance
Run to run improvement varies a lot due to different sizes of packages and the unstable performance of the slow disk.
However, in general this saves anywhere from 20s to 60s per run. Example of a performance improvement from 63.43s to 27.15s - or 36.38s in saving:
https://github.com/ruby/setup-ruby/actions/runs/14772696897/job/41475457782
https://github.com/ntkme/setup-ruby/actions/runs/14823150160/job/41612838924
Note regarding why use
$rubyPrefix\msys64
:ENV["MSYS2_PATH"]
have highest priority, but it's only supported on ruby >=3.0.7: oneclick/rubyinstaller2@a4590dd$rubyPrefix\msys64
has the second highest priority, and it's supported by ruby >=2.4.1: oneclick/rubyinstaller2@21a416f>=2.4.1
means$rubyPrefix\msys64
is supported by all currently available ruby installer versions that's linked with msys2, and it has higher priority thanC:\msys64
so that we don’t need to touch the preinstalledC:\msys64
at all.