xref: /aosp_15_r20/external/tink/kokoro/testutils/install_go.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 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