# PowerShell script for building & testing SQLite3-Ruby fat binary gem # Code by MSP-Greg, see https://github.com/MSP-Greg/av-gem-build-test # load utility functions, pass 64 or 32 . $PSScriptRoot\shared\appveyor_setup.ps1 $args[0] if ($LastExitCode) { exit } # above is required code #———————————————————————————————————————————————————————————————— above for all repos Make-Const gem_name 'puma' Make-Const repo_name 'puma' Make-Const url_repo 'https://github.com/puma/puma.git' #———————————————————————————————————————————————————————————————— lowest ruby version Make-Const ruby_vers_low 22 # null = don't compile; false = compile, ignore test (allow failure); # true = compile & test Make-Const trunk $false ; Make-Const trunk_x64 $false Make-Const trunk_JIT $null ; Make-Const trunk_x64_JIT $null #———————————————————————————————————————————————————————————————— make info Make-Const dest_so 'lib\puma' Make-Const exts @( @{ 'conf' = 'ext/puma_http11/extconf.rb' ; 'so' = 'puma_http11' } ) Make-Const write_so_require $true #———————————————————————————————————————————————————————————————— Pre-Compile # runs before compiling starts on every ruby version function Pre-Compile { # load the correct OpenSSL version in the build system Check-OpenSSL Write-Host Compiling With $env:SSL_VERS } #———————————————————————————————————————————————————————————————— Pre-Gem-Install function Pre-Gem-Install { if ($ruby -lt '23') { gem install -N --no-user-install nio4r:2.3.1 } else { gem install -N --no-user-install nio4r } } #———————————————————————————————————————————————————————————————— Run-Tests function Run-Tests { # call with comma separated list of gems to install or update Update-Gems minitest, minitest-retry, minitest-proveit, rack, rake $env:CI = 1 rake -f Rakefile_wintest -N -R norakelib | Set-Content -Path $log_name -PassThru -Encoding UTF8 # add info after test results $(ruby -ropenssl -e "STDOUT.puts $/ + OpenSSL::OPENSSL_LIBRARY_VERSION") | Add-Content -Path $log_name -PassThru -Encoding UTF8 minitest # collects test results } #———————————————————————————————————————————————————————————————— below for all repos # below is required code Make-Const dir_gem $(Convert-Path $PSScriptRoot\..) Make-Const dir_ps $PSScriptRoot Push-Location $PSScriptRoot .\shared\make.ps1 .\shared\test.ps1 Pop-Location exit $ttl_errors_fails + $exit_code