Project

General

Profile

Misc #15851

stdlib extension gems - building/testing on Windows

Added by MSP-Greg (Greg L) 3 months ago. Updated 20 days ago.

Status:
Open
Priority:
Normal
Assignee:
-
[ruby-core:92663]

Description

Along with maintaining ruby-loco, I've encouraged and helped a few popular extension gems with building/testing on Windows/Appveyor.

I decided that a PowerShell based system to compile, build the gem, followed by gem install & test was the best option. It's on Appveyor as a 7z file, and three files in the gem/repo are needed to run it.

For example output, see https://ci.appveyor.com/project/puma/puma/builds/24337063

A few things I addressed with it:

  1. Updates the MSYS2 build system, which can get rather outdated on Appveyor.

  2. Handles loading the correct version of OpenSSL back to Ruby 2.0.

  3. Installs packages in either the old MSYS build system or MSYS2.

  4. Can install and use ragel.

  5. Parses test results from Minitest, Rspec, & test-unit.

Since #1 is expensive, the system builds a standard pre-compiled gem file usable with all Ruby versions under test (test files are included in the gem). It then installs the gem in each Ruby version, and runs the tests using a custom rake file. Hence, one build job handles multiple Ruby versions. This also may speed up Appveyor CI times.

The code is here:
https://github.com/MSP-Greg/av-gem-build-test

Since the Ruby organization has a number of extension gems/repos, script like this would make things much simpler for Windows CI. I've build several extension gems with it, and I think it's stable.

Hence, might this be of interest?

History

Updated by ko1 (Koichi Sasada) 20 days ago

Greg, who should have a ball?

Also available in: Atom PDF