diff options
author | Paul Yang <TeBoring@users.noreply.github.com> | 2018-06-22 10:26:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-22 10:26:17 -0700 |
commit | b907a03185a3267a3ce0e4456aabf32dcfc54049 (patch) | |
tree | 9793c20648b7e9535522c84bb233aa53a41d75b9 | |
parent | ad85c3b4a2598670de129015fab03a97edea73bc (diff) | |
download | protobuf-b907a03185a3267a3ce0e4456aabf32dcfc54049.tar.gz protobuf-b907a03185a3267a3ce0e4456aabf32dcfc54049.tar.bz2 protobuf-b907a03185a3267a3ce0e4456aabf32dcfc54049.zip |
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
-rw-r--r-- | kokoro/release/macos/build_artifacts.cfg | 8 | ||||
-rwxr-xr-x | kokoro/release/macos/build_artifacts.sh | 19 | ||||
-rwxr-xr-x | kokoro/release/macos/ruby/ruby_build.sh | 15 | ||||
-rwxr-xr-x | kokoro/release/macos/ruby/ruby_build_environment.sh | 56 |
4 files changed, 98 insertions, 0 deletions
diff --git a/kokoro/release/macos/build_artifacts.cfg b/kokoro/release/macos/build_artifacts.cfg new file mode 100644 index 00000000..35d36dee --- /dev/null +++ b/kokoro/release/macos/build_artifacts.cfg @@ -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/**" + } +} diff --git a/kokoro/release/macos/build_artifacts.sh b/kokoro/release/macos/build_artifacts.sh new file mode 100755 index 00000000..23135ca3 --- /dev/null +++ b/kokoro/release/macos/build_artifacts.sh @@ -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 diff --git a/kokoro/release/macos/ruby/ruby_build.sh b/kokoro/release/macos/ruby/ruby_build.sh new file mode 100755 index 00000000..cf6b433d --- /dev/null +++ b/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 diff --git a/kokoro/release/macos/ruby/ruby_build_environment.sh b/kokoro/release/macos/ruby/ruby_build_environment.sh new file mode 100755 index 00000000..cc072e55 --- /dev/null +++ b/kokoro/release/macos/ruby/ruby_build_environment.sh @@ -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 + |