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 dirpull/4818/head
parent
ad85c3b4a2
commit
b907a03185
4 changed files with 98 additions and 0 deletions
@ -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…
Reference in new issue