0f9ae07fe0
This commit cleans up our environment setup for macOS builds. - Always use `python -m {pip | virtualenv}` form of commands. - Only upgrade in-place, and never use `--ignore-installed`. - Use latest tox on macos, and test 3.6 on macos presubmit. These changes ensure that multibuilder won't break the system-installed Python on the Kokoro macOS builder, and thus won't resolve the ancient system version. For Tox, make sure we test with Python 3.6 (the version of Python in current macOS).
81 lines
2.2 KiB
Bash
Executable File
81 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# This script sets up a Kokoro MacOS worker for running Protobuf tests
|
|
|
|
set -eux
|
|
|
|
##
|
|
# Select Xcode version
|
|
|
|
# Remember to update the Xcode version when Xcode_11.3.app is not available.
|
|
# If xcode is not available, it will probably encounter the failure for
|
|
# "autom4te: need GNU m4 1.4 or later: /usr/bin/m4"
|
|
# go/kokoro/userdocs/macos/selecting_xcode.md for more information.
|
|
export DEVELOPER_DIR=/Applications/Xcode_11.3.app/Contents/Developer
|
|
|
|
##
|
|
# Select C/C++ compilers
|
|
|
|
export CC=gcc
|
|
export CXX=g++
|
|
|
|
##
|
|
# Brew: update, then upgrade the installed tools to current version and install
|
|
# some needed ones not in the Kokoro base image. This ensure current versions
|
|
# of CMake, autotools, etc.
|
|
|
|
# But first...
|
|
#
|
|
# The transitive deps of the installed tools need protobuf, but Kokoro manually
|
|
# installed it outside of brew so it needs to be removed so brew can install the
|
|
# tools (and a newer version of protobuf). g/kokoro-users/7FRvQMUdN40 about why
|
|
# it is a manual install vs. a brew install in the first place.
|
|
sudo rm -rf \
|
|
/usr/local/include/google/protobuf \
|
|
/usr/local/bin/protoc
|
|
# Likewise, updating python can have issues because of some existing binaries.
|
|
sudo rm -rf \
|
|
/usr/local/bin/2to3* \
|
|
/usr/local/bin/idle3* \
|
|
/usr/local/bin/pydoc3* \
|
|
/usr/local/bin/python3* \
|
|
/usr/local/bin/pyvenv*
|
|
|
|
brew update
|
|
brew upgrade
|
|
|
|
##
|
|
# Install Ruby
|
|
|
|
if [[ "${KOKORO_INSTALL_RUBY:-}" == "yes" ]] ; then
|
|
brew install ruby
|
|
fi
|
|
|
|
##
|
|
# Install Cocoapods
|
|
|
|
if [[ "${KOKORO_INSTALL_COCOAPODS:-}" == "yes" ]] ; then
|
|
# The existing cocoapods was installed via gem, but that doesn't work well
|
|
# with the overlap in deps with things managed by brew (errors around ruby
|
|
# versions, etc.); so remove it and install in via brew instead.
|
|
gem uninstall -a "$(gem list | grep cocoapods | cut -d ' ' -f 1)"
|
|
brew install cocoapods
|
|
fi
|
|
|
|
##
|
|
# Install Tox
|
|
|
|
if [[ "${KOKORO_INSTALL_TOX:-}" == "yes" ]] ; then
|
|
sudo python3 -m pip install --upgrade pip tox
|
|
fi
|
|
|
|
##
|
|
# Install RVM
|
|
|
|
if [[ "${KOKORO_INSTALL_RVM:-}" == "yes" ]] ; then
|
|
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
|
|
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
|
|
|
|
curl -sSL https://get.rvm.io | bash -s stable --ruby
|
|
fi
|