Skip to content
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

Ruby, Windows, MSYS2 #234

Closed
MSP-Greg opened this issue Aug 19, 2019 · 6 comments
Closed

Ruby, Windows, MSYS2 #234

MSP-Greg opened this issue Aug 19, 2019 · 6 comments
Assignees

Comments

@MSP-Greg
Copy link
Contributor

I'm still on the 'wait list' for Actions, so I haven't been able to look into it seriously.

To fully support Ruby on Windows, it would certainly be helpful to have the MSYS2 build system installed, along with access to the packages used to build Ruby. Restricting Ruby to 2.4 and later, I believe all the packages are shared, with the exception of OpenSSL.

Ruby 2.4 currently uses OpenSSL 1.0.2, Ruby 2.5 and later use 1.1.1. This is due to the std-lib version of Ruby OpenSSL being used (2.0.9 for 2.4, 2.1.2 for 2.5 and later).

Otherwise, the only package commonly used that isn't repo specific would be ragel.

@damccorm
Copy link

@kaylangan for cached image enhancements

@MSP-Greg
Copy link
Contributor Author

@kaylangan

I'm thinking about whether to create an 'action' for MSYS2 install. It would be my first...

I've got a ps1 script I used on Pipelines, I may just start with that and see how long it takes to install, and where I can install it. It should be in a location that the 'ridk' system can find...

@MSP-Greg
Copy link
Contributor Author

Okay, I created an action that installed MSYS2 (it took several minutes to install it and update it), but then I found out some other things.

  1. PATH - too many conflicts here. Compilers, OpenSSL dll's, etc, etc. I might suggest a minimal PATH, and adding to it as needed for all the different 'actions' used with different languages.

  2. MSYS2 - it appears that the Windows Rubies all contain MSYS2, so there are (at present) three copies on each image. Seems odd. Ruby MinGW builds (the standard on Windows) use MSYS2, but there are a lot of other programs that also use it (Git for Windows, etc). Hence, consider using Rubies without an embedded copy of MSYS2 and maintaining a separate MSYS2 folder...

  3. With extension gem CI, there are two places compilers are used. The first may occur with bundle install or installing gems. This seems to be working correctly, in that the compiler seems to be found. The second place is when using it for a bundle exec rake compile command. Here, the command is failing; things are getting mixed up, not yet sure about the cause...

@MSP-Greg
Copy link
Contributor Author

MSP-Greg commented Aug 31, 2019

For info about Ruby builds, I've created:
https://github.com/MSP-Greg/github-actions-ruby-info/runs/208573764

All builds show a 'Ruby Info' step, and the Windows builds also have a 'MSYS2 Package Info' step.

After messing around with actions re the third issue above, I created actions to fix some of the issues with MSYS2 and other builds systems. A build with Puma is here:
https://github.com/MSP-Greg/puma/runs/208541758

Based on this branch in my fork:
https://github.com/MSP-Greg/puma/tree/integration-fix-up-1-test

Windows Rubies contains bundled *.dll files, so the goal was to have all Windows Rubies build Puma with the same base OpenSSL version as is bundled with it. That info is shown at the top of the test step, I haven't yet checked all the other jobs...

For Ruby Info comparison, see:
https://ci.appveyor.com/project/MSP-Greg/appveyor-ruby
https://travis-ci.org/MSP-Greg/travis-ruby

@MSP-Greg
Copy link
Contributor Author

MSP-Greg commented Sep 6, 2019

@bryanmacfarlane bryanmacfarlane transferred this issue from actions/setup-ruby Jan 7, 2020
@kaylangan kaylangan assigned madhurig and unassigned madhurig Jan 9, 2020
@kaylangan
Copy link
Contributor

Closing in favor of #30. Let me know if there's additional info that needs to be pulled out of this issue besides adding MSYS2.

@eine eine mentioned this issue Jan 18, 2020
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants