Skip to content

Commit 7bf427b

Browse files
authored
Use a local Go 1.18 installation to check for minimum version support. (#1871)
1 parent c91b204 commit 7bf427b

File tree

3 files changed

+29
-22
lines changed

3 files changed

+29
-22
lines changed

.evergreen/config.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,16 +1362,15 @@ tasks:
13621362
vars:
13631363
MONGO_GO_DRIVER_COMPRESSOR: "snappy"
13641364

1365-
# Build with the oldest supported version of Go.
1365+
# Build the compilecheck submodule with the oldest supported version of Go.
13661366
- name: go1.18-build
13671367
tags: ["compile-check"]
13681368
commands:
13691369
- command: subprocess.exec
13701370
params:
13711371
binary: bash
13721372
env:
1373-
GOROOT: /opt/golang/go1.18
1374-
add_to_path: [/opt/golang/go1.18/bin]
1373+
GO_VERSION: "1.18"
13751374
args: [*task-runner, build-compile-check]
13761375

13771376
# Build with the same Go version that we're using for tests.
@@ -1381,6 +1380,10 @@ tasks:
13811380
- command: subprocess.exec
13821381
params:
13831382
binary: bash
1383+
# Set the GO_VERSION to empty string to use the Go installation in the
1384+
# PATH.
1385+
env:
1386+
GO_VERSION: ""
13841387
args: [*task-runner, build]
13851388

13861389
- name: "atlas-test"

Taskfile.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@ tasks:
1818
check-license: bash etc/check_license.sh
1919

2020
build:
21-
deps: [cross-compile, build-tests, build-compile-check, install-libmongocrypt]
21+
deps: [install-libmongocrypt]
2222
cmds:
2323
- go build ./...
2424
- go build ${BUILD_TAGS} ./...
25+
- task: build-tests
26+
- task: build-compile-check
27+
- task: cross-compile
2528

2629
build-tests: go test -short ${BUILD_TAGS} -run ^$$ ./...
2730

etc/compile_check.sh

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,41 @@
22
set -e # exit when any command fails
33
set -x # show all commands being run
44

5-
GC=go
5+
# Default to Go 1.18 if GO_VERSION is not set.
6+
#
7+
# Use the "=" operator (instead of the more common ":-" operator) so that it
8+
# allows setting GO_VERSION="" to use the Go installation in the PATH, and it
9+
# sets the GO_VERSION variable if the default is used.
10+
GC=go${GO_VERSION="1.18"}
611
COMPILE_CHECK_DIR="internal/cmd/compilecheck"
7-
# shellcheck disable=SC2034
8-
DEV_MIN_VERSION=1.19
9-
10-
# version will flatten a version string of upto 4 components for inequality
11-
# comparison.
12-
function version {
13-
echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }';
14-
}
1512

1613
# compile_check will attempt to build the internal/test/compilecheck project
1714
# using the provided Go version. This is to simulate an end-to-end use case.
18-
# This check will only run on environments where the Go version is greater than
19-
# or equal to the given version.
2015
function compile_check {
2116
# Change the directory to the compilecheck test directory.
22-
cd ${COMPILE_CHECK_DIR}
17+
pushd ${COMPILE_CHECK_DIR}
2318

24-
MACHINE_VERSION=`${GC} version | { read _ _ v _; echo ${v#go}; }`
19+
# If a custom Go version is set using the GO_VERSION env var (e.g. "1.18"),
20+
# add the GOPATH bin directory to PATH and then install that Go version.
21+
if [ ! -z "$GO_VERSION" ]; then
22+
PATH=$(go env GOPATH)/bin:$PATH
23+
export PATH
2524

26-
# If the version is not 1.13, then run "go mod tidy"
27-
if [ "$(version $MACHINE_VERSION)" -ge "$(version 1.15)" ]; then
28-
go mod tidy
25+
go install golang.org/dl/go$GO_VERSION@latest
26+
${GC} download
2927
fi
3028

29+
${GC} version
30+
${GC} mod tidy
31+
3132
# Check simple build.
3233
${GC} build ./...
3334

3435
# Check build with dynamic linking.
3536
${GC} build -buildmode=plugin
3637

3738
# Check build with tags.
38-
go build $BUILD_TAGS ./...
39+
${GC} build $BUILD_TAGS ./...
3940

4041
# Check build with various architectures.
4142
GOOS=linux GOARCH=386 ${GC} build ./...
@@ -50,7 +51,7 @@ function compile_check {
5051
rm compilecheck.so
5152

5253
# Change the directory back to the working directory.
53-
cd -
54+
popd
5455
}
5556

5657
compile_check

0 commit comments

Comments
 (0)