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 Chang# This script installs a recent version of Go into a temporary directory. The Go 19*e7b1675dSTing-Kang Chang# bin directory is then added to the PATH environment variable. 20*e7b1675dSTing-Kang Chang# 21*e7b1675dSTing-Kang Chang# NOTE: This script MUST be sourced to update the environment of the calling 22*e7b1675dSTing-Kang Chang# script. 23*e7b1675dSTing-Kang Chang# 24*e7b1675dSTing-Kang Chang# Usage instructions: 25*e7b1675dSTing-Kang Chang# 26*e7b1675dSTing-Kang Chang# source ./kokoro/testutils/install_go.sh 27*e7b1675dSTing-Kang Chang 28*e7b1675dSTing-Kang Changinstall_temp_go() { 29*e7b1675dSTing-Kang Chang local -r go_version="1.19.9" 30*e7b1675dSTing-Kang Chang 31*e7b1675dSTing-Kang Chang local -r platform="$(uname | tr '[:upper:]' '[:lower:]')" 32*e7b1675dSTing-Kang Chang local go_platform 33*e7b1675dSTing-Kang Chang case "${platform}" in 34*e7b1675dSTing-Kang Chang 'linux') 35*e7b1675dSTing-Kang Chang go_platform='linux-amd64' 36*e7b1675dSTing-Kang Chang ;; 37*e7b1675dSTing-Kang Chang 'darwin') 38*e7b1675dSTing-Kang Chang go_platform='darwin-amd64' 39*e7b1675dSTing-Kang Chang ;; 40*e7b1675dSTing-Kang Chang *) 41*e7b1675dSTing-Kang Chang echo "Unsupported platform, unable to install Go." 42*e7b1675dSTing-Kang Chang exit 1 43*e7b1675dSTing-Kang Chang ;; 44*e7b1675dSTing-Kang Chang esac 45*e7b1675dSTing-Kang Chang readonly go_platform 46*e7b1675dSTing-Kang Chang 47*e7b1675dSTing-Kang Chang local -r go_archive="go${go_version}.${go_platform}.tar.gz" 48*e7b1675dSTing-Kang Chang local -r go_url="https://go.dev/dl/${go_archive}" 49*e7b1675dSTing-Kang Chang 50*e7b1675dSTing-Kang Chang local -r go_tmpdir=$(mktemp -dt tink-go.XXXXXX) 51*e7b1675dSTing-Kang Chang ( 52*e7b1675dSTing-Kang Chang cd "${go_tmpdir}" 53*e7b1675dSTing-Kang Chang curl -OLsS "${go_url}" 54*e7b1675dSTing-Kang Chang tar -xzf "${go_archive}" 55*e7b1675dSTing-Kang Chang ) 56*e7b1675dSTing-Kang Chang 57*e7b1675dSTing-Kang Chang export GOROOT="${go_tmpdir}/go" 58*e7b1675dSTing-Kang Chang export PATH="${go_tmpdir}/go/bin:${PATH}" 59*e7b1675dSTing-Kang Chang} 60*e7b1675dSTing-Kang Chang 61*e7b1675dSTing-Kang Changif [[ -n "${KOKORO_ARTIFACTS_DIR:-}" ]] ; then 62*e7b1675dSTing-Kang Chang install_temp_go 63*e7b1675dSTing-Kang Changfi 64