Skip to content

Commit

Permalink
dev: add darwin gems to build-gems; test-gem-set for batch testing
Browse files Browse the repository at this point in the history
also delete unneeded script to set up darwin rake-compiler env
  • Loading branch information
flavorjones committed Dec 30, 2020
1 parent 48038a7 commit 046147b
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 66 deletions.
27 changes: 19 additions & 8 deletions scripts/build-gems
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,39 @@
# script to build gems for all relevant platforms
#
set -o errexit
set -u -x
set -o nounset
set -x

rm -rf tmp pkg gems
mkdir -p gems

# MRI et al (standard gem)
bundle update
bundle package

bundle exec rake clean
bundle exec rake compile test

# MRI et al (standard gem)
bundle exec rake clean
bundle exec rake gem
cp -v pkg/nokogiri*.gem gems

# jruby
bundle exec rake clean
bundle exec rake gem:jruby
cp -v pkg/nokogiri*java.gem gems
cp -v pkg/nokogiri-*java*.gem gems

# windows and linux fat binary gems
# precompiled native gems ("fat binary")
bundle exec rake clean

bundle exec rake gem:windows
cp -v pkg/nokogiri-*mingw*.gem gems

bundle exec rake gem:linux
cp -v pkg/nokogiri-*{x86,x64}*.gem gems
cp -v pkg/nokogiri-*linux*.gem gems

bundle exec rake gem:darwin
cp -v pkg/nokogiri-*darwin*.gem gems

for f in gems/*.gem ; do
./scripts/test-gem-file-contents $f
done
# test those gem files!
$(dirname $0)/test-gem-files gems/*.gem
58 changes: 0 additions & 58 deletions scripts/setup-osx-native-builders

This file was deleted.

48 changes: 48 additions & 0 deletions scripts/test-gem-set
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#! /usr/bin/env bash
#
# script to test a set of gem files
# - test-gem-file-contents
# - conditionally, if the local system can do it, test-gem-installation
#
source "$HOME/.rvm/scripts/rvm"

set -o errexit
set -o pipefail

gem_platform_local=`ruby -e "puts Gem::Platform.local.to_s"`

function remove_all_nokogiris {
yes | gem uninstall --force nokogiri || true
}

function install_and_test {
gem=$1
if [[ $gem =~ "java" ]] ; then
rvm use jruby
else
rvm use default
fi
remove_all_nokogiris
gem install --local $gem
./scripts/test-gem-installation

if [[ $gem =~ nokogiri-[^-]*\.gem ]] ; then
remove_all_nokogiris
NOKOGIRI_USE_SYSTEM_LIBRARIES=t gem install --local $gem
./scripts/test-gem-installation
fi
}

gems=$*

rvm use default

for gem in $gems ; do
./scripts/test-gem-file-contents $gem
done

for gem in $gems ; do
if [[ $gem =~ nokogiri-[^-]+(-(${gem_platform_local}|java))?\.gem$ ]] ; then
install_and_test $gem
fi
done

0 comments on commit 046147b

Please sign in to comment.