Add files to build ruby artifact for mac on kokoro (#4814)

* Add files to build ruby artifact for mac on kokoro

* Move ruby specific stuff to ruby dir
pull/4818/head
Paul Yang 7 years ago committed by GitHub
parent ad85c3b4a2
commit b907a03185
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      kokoro/release/macos/build_artifacts.cfg
  2. 19
      kokoro/release/macos/build_artifacts.sh
  3. 15
      kokoro/release/macos/ruby/ruby_build.sh
  4. 56
      kokoro/release/macos/ruby/ruby_build_environment.sh

@ -0,0 +1,8 @@
# Configuration for Mac OSX release builds
build_file: "protobuf/kokoro/release/macos/build_artifacts.sh"
action {
define_artifacts {
regex: "github/protobuf/artifacts/**"
}
}

@ -0,0 +1,19 @@
#!/bin/bash
set -ex
# change to repo root
cd $(dirname $0)/../../..
# all artifacts come here
mkdir artifacts
export ARTIFACT_DIR=$(pwd)/artifacts
# ruby environment
bash kokoro/release/macos/ruby/ruby_build_environment.sh
gem install rubygems-update
update_rubygems
# build artifacts
bash kokoro/release/macos/ruby/ruby_build.sh

@ -0,0 +1,15 @@
#!/bin/bash
# Build protoc
if test ! -e src/protoc; then
./autogen.sh
./configure
make -j4
fi
umask 0022
pushd ruby
bundle install && bundle exec rake gem:native
ls pkg
mv pkg/* $ARTIFACT_DIR
popd

@ -0,0 +1,56 @@
#!/bin/bash
set -ex
set +ex # rvm script is very verbose and exits with errorcode
source $HOME/.rvm/scripts/rvm
set -e # rvm commands are very verbose
time rvm install 2.5.0
rvm use 2.5.0 --default
gem install bundler --no-ri --no-doc
rvm osx-ssl-certs status all
rvm osx-ssl-certs update all
set -ex
rm -rf ~/.rake-compiler
CROSS_RUBY=$(mktemp tmpfile.XXXXXXXX)
curl https://raw.githubusercontent.com/rake-compiler/rake-compiler/v1.0.3/tasks/bin/cross-ruby.rake > "$CROSS_RUBY"
# See https://github.com/grpc/grpc/issues/12161 for verconf.h patch details
patch "$CROSS_RUBY" << EOF
--- cross-ruby.rake 2018-04-10 11:32:16.000000000 -0700
+++ patched 2018-04-10 11:40:25.000000000 -0700
@@ -133,8 +133,10 @@
"--host=#{MINGW_HOST}",
"--target=#{MINGW_TARGET}",
"--build=#{RUBY_BUILD}",
- '--enable-shared',
+ '--enable-static',
+ '--disable-shared',
'--disable-install-doc',
+ '--without-gmp',
'--with-ext='
]
@@ -151,6 +153,7 @@
# make
file "#{USER_HOME}/builds/#{MINGW_HOST}/#{RUBY_CC_VERSION}/ruby.exe" => ["#{USER_HOME}/builds/#{MINGW_HOST}/#{RUBY_CC_VERSION}/Makefile"] do |t|
chdir File.dirname(t.prerequisites.first) do
+ sh "test -s verconf.h || rm -f verconf.h" # if verconf.h has size 0, make sure it gets re-built by make
sh MAKE
end
end
EOF
MAKE="make -j8"
for v in 2.5.0 2.4.0 2.3.0 2.2.2 2.1.6 2.0.0-p645 ; do
ccache -c
rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=x86_64-darwin11 MAKE="$MAKE"
done
sed 's/x86_64-darwin-11/universal-darwin/' ~/.rake-compiler/config.yml > "$CROSS_RUBY"
mv "$CROSS_RUBY" ~/.rake-compiler/config.yml
Loading…
Cancel
Save