Windows mswin builds, Actions, OpenSSL 3
Sorry for the long post and the md formatting...
With the release of the Actions windows-2022 image, MSYS2 build tools are no longer pre-installed on the image. Given that updating MSYS's msys and mingw64/ucrt64 tools can take quite a while, using a repo to create 7z archive files with the updates was used.
That repo is MSP-Greg/setup-msys2-gcc. Four times a day it creates four 7z archives (only if needed) and these are installed by ruby/setup-ruby when the windows-2022 image is used with Ruby mingw64 or ucrt64 builds.
So, for windows-2022 use with Rubies 2.4 and later, the full set of gcc tools are installed. Additionally, the packages needed to buid Ruby are included.
Currently, some Ruby repos are using MSP-Greg/setup-ruby-pkgs to install MSYS2 packages, this is no longer required when using windows-2022.
But, this was only done for ming64 and ucrt64 builds. I recently added an mswin 7z archive, and it contains all the vcpkg packages (libffi, libyaml, openssl, readline, & zlib) needed for a mswin build.
The question is, how should this archive be installed?
Install when an mswin build is installed by ruby/setup-ruby?
The vcpkg input to MSP-Greg/setup-ruby-pkgs could have a value of 'ruby' added which will install them?
No install, and do so via curl in an Actions step?
Code also needs to set the
This is also complicated by the fact that the current vcpkg for OpenSSL has been upgraded to OpenSSL 3, but the vcpkg release in the Actions image doesn't have it.
I have built ruby-loco's mswin build with the vcpkg archive (also with OpenSSL 3), and it passes. Ruby's windows.yml Action workflow also passes with the change. I'll do a draft PR for it (disabling the other CI workflows).
Updated by MSP-Greg (Greg L) about 1 month ago
All of the above has been implemented. Re Actions & Windows builds, using an mswin build (currently only available as a head build, 'mswin') will install all the vcpkg dependencies needed to build Ruby, similar to mingw & ucrt builds. 'mswin' is being built with OpenSSL 3.