結論
以下のような config.yml
を書きます。
version: 2 jobs: build: docker: - image: circleci/ruby:2.6.5 working_directory: ~/repo steps: (省略) - run: name: Download Golang 1.13.4 command: | wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz - run: name: Extract Golang 1.13.4 tarball command: | sudo tar -C /usr/local -xzf go1.13.4.linux-amd64.tar.gz - run: name: Set environment variables command: | echo 'export GOROOT=/usr/local/go' >> $BASH_ENV echo 'export PATH=$PATH:$GOROOT/bin' >> $BASH_ENV source $BASH_ENV - run: name: Check whether Golang has been installed or not command: | which go go version
上記によるコンソールの出力
上記のコマンド群が実行されると以下のようにコンソールに出力されます。ローカルの CLI で CircleCI を走らせた場合です。
====>> Download Golang 1.13.4 #!/bin/bash -eo pipefail wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz --2019-11-21 05:53:14-- https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz Resolving dl.google.com (dl.google.com)... 172.217.25.238, 2404:6800:4004:808::200e Connecting to dl.google.com (dl.google.com)|172.217.25.238|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 120054682 (114M) [application/octet-stream] Saving to: ‘go1.13.4.linux-amd64.tar.gz’ go1.13.4.linux-amd6 100%[===================>] 114.49M 25.4MB/s in 4.6s 2019-11-21 05:53:19 (25.1 MB/s) - ‘go1.13.4.linux-amd64.tar.gz’ saved [120054682/120054682] ====>> Extract Golang 1.13.4 Archive #!/bin/bash -eo pipefail sudo tar -C /usr/local -xzf go1.13.4.linux-amd64.tar.gz ====>> Set environment variables #!/bin/bash -eo pipefail echo 'export GOROOT=/usr/local/go' >> $BASH_ENV echo 'export PATH=$PATH:$GOROOT/bin' >> $BASH_ENV echo 'export PATH=$PATH:/usr/local/go/bin' >> $BASH_ENV source $BASH_ENV ====>> Check whether Golang has been installed or not #!/bin/bash -eo pipefail which go go version /usr/local/go/bin/go go version go1.13.4 linux/amd64 Success!
補足
source $BASH_ENV
がポイントですGOROOT
の場所は、tarball の展開場所と一致していてパスが通っていれば(パスを通せば)どこでもよいです