xref: /aosp_15_r20/external/tink/kokoro/testutils/install_python3.sh (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
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