pulumi/build/travis/install-common-toolchain.sh
Joe Duffy 0d79d2106c
Ensure pip 10.0.0 is installed (#1199)
This change installs pip 10.0.0 in all three places it might come up:

1) Machine-wide packages.

2) User-local packages.

3) In the isolated virtualenv.
2018-04-14 16:43:48 -07:00

86 lines
3.1 KiB
Bash

nvm install ${NODE_VERSION-v8.11.1}
# Travis sources this script, so we can export variables into the
# outer shell, so we don't want to set options like nounset because
# they would be set in the outer shell as well, so do as much logic as
# we can in a subshell.
(
set -o nounset -o errexit -o pipefail
[ -e "$(go env GOPATH)/bin" ] || mkdir -p "$(go env GOPATH)/bin"
YARN_VERSION="1.3.2"
DEP_VERSION="0.4.1"
GOMETALINTER_VERSION="2.0.3"
PIP_VERSION="10.0.0"
VIRTUALENV_VERSION="15.2.0"
AWSCLI_VERSION="1.14.30"
WHEEL_VERSION="0.30.0"
TWINE_VERSION="1.9.1"
OS=""
case $(uname) in
"Linux") OS="linux";;
"Darwin") OS="darwin";;
*) echo "error: unknown host os $(uname)" ; exit 1;;
esac
# On Travis, pip is called pip2.7, so alias it, also install jq
if [ "${TRAVIS_OS_NAME:-}" = "osx" ]; then
sudo ln -s $(which pip2.7) /usr/local/bin/pip
brew install jq
fi
echo "installing yarn ${YARN_VERSION}"
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}
echo "installing dep ${DEP_VERSION}"
curl -L -o "$(go env GOPATH)/bin/dep" https://github.com/golang/dep/releases/download/v${DEP_VERSION}/dep-${OS}-amd64
chmod +x "$(go env GOPATH)/bin/dep"
echo "installing Gometalinter ${GOMETALINTER_VERSION}"
curl -L "https://github.com/alecthomas/gometalinter/releases/download/v${GOMETALINTER_VERSION}/gometalinter-v${GOMETALINTER_VERSION}-${OS}-amd64.tar.bz2" | tar -jxv --strip-components=1 -C "$(go env GOPATH)/bin"
chmod +x "$(go env GOPATH)/bin/gometalinter"
chmod +x "$(go env GOPATH)/bin/linters/"*
# Gometalinter looks for linters on the $PATH, so let's move them out
# of the linters folder and into GOBIN (which we know is on the $PATH)
mv "$(go env GOPATH)/bin/linters/"* "$(go env GOPATH)/bin/."
rm -rf "$(go env GOPATH)/bin/linters/"
echo "installing gocovmerge"
# gocovmerge does not publish versioned releases, but it also hasn't been updated in two years, so
# getting HEAD is pretty safe.
go get -v github.com/wadey/gocovmerge
echo "upgrading Pip to ${PIP_VERSION}"
sudo pip install --upgrade "pip>=${PIP_VERSION}"
pip install --user --upgrade "pip>=${PIP_VERSION}"
echo "installing virtualenv ${VIRTUALENV_VERSION}"
sudo pip install "virtualenv==${VIRTUALENV_VERSION}"
pip install --user "virtualenv==${VIRTUALENV_VERSION}"
echo "installing AWS cli ${AWSCLI_VERSION}"
pip install --user "awscli==${AWSCLI_VERSION}"
echo "installing Wheel and Twine, so we can publish Python packages"
pip install --user "wheel==${WHEEL_VERSION}" "twine==${TWINE_VERSION}"
)
# If the sub shell failed, bail out now.
[ "$?" -eq 0 ] || exit 1
# By default some tools are not on the PATH, let's fix that
# On OSX, the user folder that `pip` installs tools to is not on the
# $PATH by default.
if [[ "${TRAVIS_OS_NAME:-}" == "osx" ]]; then
export PATH=$PATH:$HOME/Library/Python/2.7/bin
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
fi
# Add yarn to the $PATH
export PATH=$HOME/.yarn/bin:$PATH