sparklemotion / sqlite3-ruby

Ruby bindings for the SQLite3 embedded database
https://github.com/sparklemotion/sqlite3-ruby/
BSD 3-Clause "New" or "Revised" License
765 stars 200 forks source link

Build Windows fat-binary on Appveyor? #233

Closed MSP-Greg closed 6 years ago

MSP-Greg commented 6 years ago

Puma & EventMachine both can be built with OpenSSL. To build a fat-binary covering Ruby versions 2.0 thru 2.5 requires two build systems (RubyInstaller/MSYS & RubyInstaller2/MSYS2), and four OpenSSL versions. I considered that to be something that a MacOS or *nix user might not want to wrestle with. Long story short, I started working on PowerShell scripts to build on Appveyor, and I've got both building & testing on Appveyor.

This repo/gem, also being included in Rails, is another gem that could be built on Appveyor.

Any interest in doing so?

Thanks, Greg

MSP-Greg commented 6 years ago

Ran 64 bit locally, need to tidy up a few things. Used 3.24.0.0. Test results (Appveyor build runs as one job, compiles all *.so files, builds gem, then switches between ruby versions (changes path), installs gem in each, runs tests with simplified Rakefile, ps function gathers test results):

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― Test Summary
 Runs  Asserts  Fails  Errors  Skips  Ruby
                                                  x64-mingw32
 270     443      0       0       1   Ruby25-x64  ruby 2.5.1p57   (2018-03-29 revision 63029)
 270     443      0       0       1   Ruby24-x64  ruby 2.4.4p296  (2018-03-28 revision 63013)
 270     443      0       0       1   Ruby23-x64  ruby 2.3.3p222  (2016-11-21 revision 56859)
 270     443      0       0       1   Ruby22-x64  ruby 2.2.6p396  (2016-11-15 revision 56800)
 270     443      0       0       1   Ruby21-x64  ruby 2.1.9p490  (2016-03-30 revision 54437)
 270     443      0       0       1   Ruby200-x64 ruby 2.0.0p648  (2015-12-16)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
MSP-Greg commented 6 years ago

New results, using repo master & SQLite3 3.24.0. All Ruby versions 2.0 thru 2.5, both 32 & 64 bit, pass all tests.

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― Test Summary
 Runs  Asserts  Fails  Errors  Skips  Ruby
                                                  x64-mingw32
 270     443      0       0       1   Ruby25-x64  ruby 2.5.1p57   (2018-03-29 revision 63029)
 270     443      0       0       1   Ruby24-x64  ruby 2.4.4p296  (2018-03-28 revision 63013)
 270     443      0       0       1   Ruby23-x64  ruby 2.3.3p222  (2016-11-21 revision 56859)
 270     443      0       0       1   Ruby22-x64  ruby 2.2.6p396  (2016-11-15 revision 56800)
 270     443      0       0       1   Ruby21-x64  ruby 2.1.9p490  (2016-03-30 revision 54437)
 270     443      0       0       1   Ruby200-x64 ruby 2.0.0p648  (2015-12-16)
                                                  i386-mingw32
 270     443      0       0       1   Ruby25      ruby 2.5.1p57   (2018-03-29 revision 63029)
 270     443      0       0       1   Ruby24      ruby 2.4.4p296  (2018-03-28 revision 63013)
 270     443      0       0       1   Ruby23      ruby 2.3.3p222  (2016-11-21 revision 56859)
 270     443      0       0       1   Ruby22      ruby 2.2.6p396  (2016-11-15 revision 56800)
 270     443      0       0       1   Ruby21      ruby 2.1.9p490  (2016-03-30 revision 54437)
 270     443      0       0       1   Ruby200     ruby 2.0.0p648  (2015-12-16)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

EDIT: Pushed fat-binary build code to Appveyor.

Log:

https://ci.appveyor.com/project/MSP-Greg/sqlite3-ruby-fb/build/3

Artifacts (gem files):

https://ci.appveyor.com/project/MSP-Greg/sqlite3-ruby-fb/build/3/artifacts

MSP-Greg commented 6 years ago

See PR #234