123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/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/pip3 \
- /usr/local/bin/pydoc3* \
- /usr/local/bin/python3* \
- /usr/local/bin/pyvenv*
- git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
- git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
- 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 master --ruby
- fi
|