Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GODRIVER-2518 Use Go 1.18 for Evergreen CI. #1047

Merged
merged 1 commit into from Aug 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
73 changes: 35 additions & 38 deletions .evergreen/config.yml
Expand Up @@ -242,10 +242,7 @@ functions:

# Install linters. Use "go install" instead of "go get" to prevent modifying the go.mod
# file.
# TODO(GODRIVER-2519): The "latest" version of golangci-lint currently requires Go 1.19.
# TODO Pin to the "latest" version of golangci-lint again when we update the Evergreen CI
# TODO to use Go 1.19.
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.47.3
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go install github.com/walle/lll/...@latest

upload-mo-artifacts:
Expand Down Expand Up @@ -2002,7 +1999,7 @@ tasks:
echo "Untarring file ... begin"
GCPKMS_CMD="tar xf testgcpkms.tgz" $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/run-command.sh
echo "Untarring file ... end"

- command: shell.exec
type: test
params:
Expand Down Expand Up @@ -2112,88 +2109,88 @@ axes:
- id: os-ssl-32
display_name: OS
values:
- id: "windows-64-go-1-17"
- id: "windows-64-go-1-18"
display_name: "Windows 64-bit"
run_on:
- windows-64-vs2017-test
variables:
GCC_PATH: "/cygdrive/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
GO_DIST: "C:\\golang\\go1.17"
GO_DIST: "C:\\golang\\go1.18"
PYTHON3_BINARY: "C:/python/Python38/python.exe"
VENV_BIN_DIR: "Scripts"
- id: "ubuntu1604-64-go-1-17"
- id: "ubuntu1604-64-go-1-18"
display_name: "Ubuntu 16.04"
run_on: ubuntu1604-build
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
PYTHON3_BINARY: "/opt/python/3.8/bin/python3"
- id: "osx-go-1-17"
- id: "osx-go-1-18"
display_name: "MacOS 10.15"
run_on: macos-1015
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
PYTHON3_BINARY: python3

# OSes that require >= 4.0 for SSL
- id: os-ssl-40
display_name: OS
values:
- id: "windows-64-go-1-17"
- id: "windows-64-go-1-18"
display_name: "Windows 64-bit"
run_on:
- windows-64-vs2017-test
variables:
GCC_PATH: "/cygdrive/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
GO_DIST: "C:\\golang\\go1.17"
GO_DIST: "C:\\golang\\go1.18"
PYTHON3_BINARY: "C:/python/Python38/python.exe"
VENV_BIN_DIR: "Scripts"
- id: "ubuntu1804-64-go-1-17"
- id: "ubuntu1804-64-go-1-18"
display_name: "Ubuntu 18.04"
run_on: ubuntu1804-build
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
PYTHON3_BINARY: "/opt/python/3.8/bin/python3"
- id: "osx-go-1-17"
- id: "osx-go-1-18"
display_name: "MacOS 10.15"
run_on: macos-1015
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
PYTHON3_BINARY: python3

# OCSP linux tasks need to run against this OS since stapling is disabled on Ubuntu 18.04 (SERVER-51364)
- id: ocsp-rhel-70
display_name: OS
values:
- id: "rhel70-go-1-17"
- id: "rhel70-go-1-18"
display_name: "RHEL 7.0"
run_on: rhel70-build
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
PYTHON3_BINARY: "/opt/python/3.6/bin/python3"

- id: os-aws-auth
display_name: OS
values:
- id: "windows-64-vsMulti-small-go-1-17"
- id: "windows-64-vsMulti-small-go-1-18"
display_name: "Windows 64-bit"
run_on:
- windows-64-vsMulti-small
variables:
GCC_PATH: "/cygdrive/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
GO_DIST: "C:\\golang\\go1.17"
GO_DIST: "C:\\golang\\go1.18"
SKIP_ECS_AUTH_TEST: true
PYTHON3_BINARY: "C:/python/Python38/python.exe"
- id: "ubuntu1804-64-go-1-17"
- id: "ubuntu1804-64-go-1-18"
display_name: "Ubuntu 18.04"
run_on: ubuntu1804-test
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
PYTHON3_BINARY: "/opt/python/3.8/bin/python3"
- id: "osx-go-1-17"
- id: "osx-go-1-18"
display_name: "MacOS 10.15"
run_on: macos-1015
variables:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
SKIP_ECS_AUTH_TEST: true
SKIP_EC2_AUTH_TEST: true
PYTHON3_BINARY: python3
Expand Down Expand Up @@ -2291,7 +2288,7 @@ buildvariants:
run_on:
- ubuntu1804-build
expansions:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
tasks:
- name: ".static-analysis"

Expand All @@ -2300,7 +2297,7 @@ buildvariants:
run_on:
- ubuntu1804-build
expansions:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
tasks:
- name: ".performance"

Expand All @@ -2309,7 +2306,7 @@ buildvariants:
run_on:
- ubuntu1804-test
expansions:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
tasks:
- name: ".compile-check"

Expand All @@ -2318,7 +2315,7 @@ buildvariants:
run_on:
- ubuntu1804-build
expansions:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
tasks:
- name: "atlas-test"

Expand All @@ -2327,7 +2324,7 @@ buildvariants:
run_on:
- ubuntu1804-build
expansions:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
tasks:
- name: "test-atlas-data-lake"

Expand Down Expand Up @@ -2386,22 +2383,22 @@ buildvariants:
- name: "aws-auth-test"

- matrix_name: "ocsp-test"
matrix_spec: { version: ["4.4", "5.0", "6.0", "latest"], ocsp-rhel-70: ["rhel70-go-1-17"] }
matrix_spec: { version: ["4.4", "5.0", "6.0", "latest"], ocsp-rhel-70: ["rhel70-go-1-18"] }
display_name: "OCSP ${version} ${ocsp-rhel-70}"
batchtime: 20160 # Use a batchtime of 14 days as suggested by the OCSP test README
tasks:
- name: ".ocsp"

- matrix_name: "ocsp-test-windows"
matrix_spec: { version: ["4.4", "5.0", "6.0", "latest"], os-ssl-40: ["windows-64-go-1-17"] }
matrix_spec: { version: ["4.4", "5.0", "6.0", "latest"], os-ssl-40: ["windows-64-go-1-18"] }
display_name: "OCSP ${version} ${os-ssl-40}"
batchtime: 20160 # Use a batchtime of 14 days as suggested by the OCSP test README
tasks:
# Windows MongoDB servers do not staple OCSP responses and only support RSA.
- name: ".ocsp-rsa !.ocsp-staple"

- matrix_name: "ocsp-test-macos"
matrix_spec: { version: ["4.4", "5.0", "6.0", "latest"], os-ssl-40: ["osx-go-1-17"] }
matrix_spec: { version: ["4.4", "5.0", "6.0", "latest"], os-ssl-40: ["osx-go-1-18"] }
display_name: "OCSP ${version} ${os-ssl-40}"
batchtime: 20160 # Use a batchtime of 14 days as suggested by the OCSP test README
tasks:
Expand All @@ -2415,26 +2412,26 @@ buildvariants:
- name: ".versioned-api"

- matrix_name: "kms-tls-test"
matrix_spec: { version: ["latest"], os-ssl-40: ["ubuntu1804-64-go-1-17"] }
matrix_spec: { version: ["latest"], os-ssl-40: ["ubuntu1804-64-go-1-18"] }
display_name: "KMS TLS ${os-ssl-40}"
tasks:
- name: ".kms-tls"

- matrix_name: "load-balancer-test"
# The LB software is only available on Ubuntu 18.04, so we don't test on all OSes.
matrix_spec: { version: ["5.0", "6.0", "latest", "rapid"], os-ssl-40: ["ubuntu1804-64-go-1-17"] }
matrix_spec: { version: ["5.0", "6.0", "latest", "rapid"], os-ssl-40: ["ubuntu1804-64-go-1-18"] }
display_name: "Load Balancer Support ${version} ${os-ssl-40}"
tasks:
- name: ".load-balancer"

- matrix_name: "serverless"
matrix_spec: { os-ssl-40: ["ubuntu1804-64-go-1-17"] }
matrix_spec: { os-ssl-40: ["ubuntu1804-64-go-1-18"] }
display_name: "Serverless ${os-ssl-40}"
tasks:
- "serverless_task_group"

- matrix_name: "kms-kmip-test"
matrix_spec: { version: ["latest"], os-ssl-40: ["ubuntu1804-64-go-1-17"] }
matrix_spec: { version: ["latest"], os-ssl-40: ["ubuntu1804-64-go-1-18"] }
display_name: "KMS KMIP ${os-ssl-40}"
tasks:
- name: ".kms-kmip"
Expand All @@ -2444,7 +2441,7 @@ buildvariants:
run_on:
- debian11-small
expansions:
GO_DIST: "/opt/golang/go1.17"
GO_DIST: "/opt/golang/go1.18"
tasks:
- name: testgcpkms_task_group
batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -22,7 +22,7 @@ The MongoDB supported driver for Go.
-------------------------
## Requirements

- Go 1.10 or higher if using the driver as a dependency. Go 1.17 or higher if building the driver yourself. We aim to support the latest versions of Go.
- Go 1.10 or higher if using the driver as a dependency. Go 1.18 or higher if building the driver yourself. We aim to support the latest versions of Go.
- MongoDB 2.6 and higher.

-------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/CONTRIBUTING.md
Expand Up @@ -13,7 +13,7 @@ Before starting to write code, look for existing [tickets](https://jira.mongodb.
The Go Driver team uses GitHub to manage and review all code changes. Patches should generally be made against the master (default) branch and include relevant tests, if
applicable.

Code should compile and tests should pass under all Go versions which the driver currently supports. Currently the Go Driver supports a minimum version of Go 1.10 and requires Go 1.17 for development. Please run the following Make targets to validate your changes:
Code should compile and tests should pass under all Go versions which the driver currently supports. Currently the Go Driver supports a minimum version of Go 1.10 and requires Go 1.18 for development. Please run the following Make targets to validate your changes:
- `make fmt`
- `make lint` (requires [golangci-lint](https://github.com/golangci/golangci-lint) and [lll](https://github.com/walle/lll) to be installed and available in the `PATH`)
- `make test`
Expand Down