MSP-Greg / ruby-loco

Fully tested Ruby Windows Mingw, ucrt & mswin builds, built and saved on GitHub
https://github.com/MSP-Greg/ruby-loco
MIT License
17 stars 5 forks source link

windows-latest is out of date #9

Closed cfis closed 8 months ago

cfis commented 8 months ago

I noticed when running tests for ruby-prof with windows-latest it is pulling Ruby 3.0.6. See log here:

https://github.com/ruby-prof/ruby-prof/actions/runs/7437121871/job/20234393952

Would it be possible to update it to the actual latest ruby, 3.3.0, so it matches its name?

MSP-Greg commented 8 months ago

Sorry, a little confused.

In GitHub Actions, 'windows-latest' refers to the OS image that is used, see https://github.com/actions/runner-images?tab=readme-ov-file#available-images

The Ruby version that is used is defined by the ruby-version input of setup-ruby.

Where exactly are you seeing a reference to Ruby 3.0.6? The link is to the 'summary view' of the "tests (windows-latest, mswin)" job, which seems to be using Ruby 3.4.0, built from Ruby master branch..

MSP-Greg commented 8 months ago

JFYI, this repo builds and tests Windows ruby head builds, and if all tests pass, the builds are stored in a release. They can be downloaded for local use, and they are also downloaded by the ruby/setup-ruby action.

So, the actual Ruby version selection is done by the ruby/setup-ruby action.

cfis commented 8 months ago

Ok, I think I'm incorrect. I saw this in the log:

 Entries removed from Path to avoid conflicts with default Ruby:
    C:\hostedtoolcache\windows\Ruby\3.0.6\x64\bin

But then later in the log:

Print Ruby version
  D:\ruby-mswin\bin\ruby.exe --version
  ruby 3.4.0dev (2024-01-07T00:24:34Z master e4a9a73931) [x64-mswin64_140]
  Took   0.12 seconds

So I'll close this ticket.

One other sort of related question, is there a way to specify a matrix with msvc builds and ruby versions? So I could say run tests on an msvc build using ruby 3.0, 3.1, etc. So the same as MacOS or the mingw windows build?

MSP-Greg commented 8 months ago

@cfis

No problem.

Re C:\hostedtoolcache\windows\Ruby\3.0.6\x64\bin, that's the Ruby that GitHub includes as the default on Windows images. They include 2.7.8, 3.0.6, and 3.1.4. They obviously aren't updated often, and they seem to assume everyone is using setup-ruby, which is probably valid. Note that setup-ruby will use the pre-installed Ruby versions.

is there a way to specify a matrix with msvc builds and ruby versions?

At present, no. The only msvc/mswin build available with setup-ruby is the head build (aka mswin) created here. All current Windows Ruby releases are either MSYS2 MINGW64 or UCRT64.

Also, we'd have to update setup-ruby with some special syntax for it, like ms3.3 is mswin, and 3.3 for UCRT64...

I've debated whether to build release mswin versions, but there aren't a lot of people asking for them. I have been building the head builds here for several years, so assuming none of the backports are bad, they should continue to work. The ruby/ruby CI tests commits on all active release branches with msvc/mswin.

cfis commented 8 months ago

Cool - thanks for the explanation! Not a big deal on mswin builds, kind of figured