1*e7b1675dSTing-Kang Chang#!/bin/bash 2*e7b1675dSTing-Kang Chang 3*e7b1675dSTing-Kang Chang# Copyright 2022 Google LLC 4*e7b1675dSTing-Kang Chang# 5*e7b1675dSTing-Kang Chang# Licensed under the Apache License, Version 2.0 (the "License"); 6*e7b1675dSTing-Kang Chang# you may not use this file except in compliance with the License. 7*e7b1675dSTing-Kang Chang# You may obtain a copy of the License at 8*e7b1675dSTing-Kang Chang# 9*e7b1675dSTing-Kang Chang# http://www.apache.org/licenses/LICENSE-2.0 10*e7b1675dSTing-Kang Chang# 11*e7b1675dSTing-Kang Chang# Unless required by applicable law or agreed to in writing, software 12*e7b1675dSTing-Kang Chang# distributed under the License is distributed on an "AS IS" BASIS, 13*e7b1675dSTing-Kang Chang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*e7b1675dSTing-Kang Chang# See the License for the specific language governing permissions and 15*e7b1675dSTing-Kang Chang# limitations under the License. 16*e7b1675dSTing-Kang Chang################################################################################ 17*e7b1675dSTing-Kang Chang 18*e7b1675dSTing-Kang Changreadonly DEFAULT_PYTHON_VERSION=3.7.1 19*e7b1675dSTing-Kang Chang 20*e7b1675dSTing-Kang Chang# This scripts installs Python 3 at a given version; if the version is not 21*e7b1675dSTing-Kang Chang# specified, DEFAULT_PYTHON_VERSION is used. 22*e7b1675dSTing-Kang Chang# 23*e7b1675dSTing-Kang Chang# NOTEs: 24*e7b1675dSTing-Kang Chang# * If not running on Kokoro, this script will do nothing. 25*e7b1675dSTing-Kang Chang# * This script MUST be sourced to update the environment of the calling 26*e7b1675dSTing-Kang Chang# script. 27*e7b1675dSTing-Kang Chang# 28*e7b1675dSTing-Kang Chang# Usage: 29*e7b1675dSTing-Kang Chang# source ./kokoro/testutils/install_python3.sh [version] 30*e7b1675dSTing-Kang Chang 31*e7b1675dSTing-Kang Chang####################################### 32*e7b1675dSTing-Kang Chang# Install Python 3 at a given version. 33*e7b1675dSTing-Kang Chang# Globals: 34*e7b1675dSTing-Kang Chang# DEFAULT_PYTHON_VERSION 35*e7b1675dSTing-Kang Chang# Arguments: 36*e7b1675dSTing-Kang Chang# python_version: Python version to use; default is DEFAULT_PYTHON_VERSION. 37*e7b1675dSTing-Kang Chang####################################### 38*e7b1675dSTing-Kang Changinstall_python3() { 39*e7b1675dSTing-Kang Chang python_version="${1:-${DEFAULT_PYTHON_VERSION}}" 40*e7b1675dSTing-Kang Chang # Update the list of Python versions. 41*e7b1675dSTing-Kang Chang ( 42*e7b1675dSTing-Kang Chang cd /home/kbuilder/.pyenv/plugins/python-build/../.. 43*e7b1675dSTing-Kang Chang git pull 44*e7b1675dSTing-Kang Chang ) 45*e7b1675dSTing-Kang Chang # Install Python. 46*e7b1675dSTing-Kang Chang eval "$(pyenv init -)" 47*e7b1675dSTing-Kang Chang pyenv install "${python_version}" 48*e7b1675dSTing-Kang Chang pyenv global "${python_version}" 49*e7b1675dSTing-Kang Chang # Debug output to check we are using the right version. 50*e7b1675dSTing-Kang Chang echo "Using python3: $(which python3)" 51*e7b1675dSTing-Kang Chang python3 --version 52*e7b1675dSTing-Kang Chang} 53*e7b1675dSTing-Kang Chang 54*e7b1675dSTing-Kang Changif [[ -n "${KOKORO_ROOT:-}" ]] ; then 55*e7b1675dSTing-Kang Chang install_python3 "$@" 56*e7b1675dSTing-Kang Changfi 57