-
Notifications
You must be signed in to change notification settings - Fork 212
Description
Hiya! I migrated an app from 3.3.1 to 3.4.5 and got blocked on psych, because of a missing yaml.h file.
I was wondering if you would support a PR to change CI to build the gems ahead of time, before pushing?
Basically, you set up your CI matrix for every platform you're interested in, then CI installs all the tools necessary to compile the extension. The compiled extension is packaged into one gem per platform, and then each platform version is pushed to Rubygems. The result is that every user automatically gets the correctly compiled gem for their specific platform--they don't need to build the gem themselves.
If a platform is not supported, a plain ruby version is pushed. This would run the compilation locally on the user's machine, just as it is done now.
I've done this for a bunch of projects and took the idea from Nokogiri. I do not mind at all doing the work necessary to get this working; the challenge is that, since this would run on GitHub Actions, and I don't have admin privileges, someone on the team would need to trigger the builds to test it out. I can do my best building locally with rake-compiler-dock, but inevitably there will be errors on the CI machine while working the flow out. There always are. 😆