-
Notifications
You must be signed in to change notification settings - Fork 927
Expand file tree
/
Copy pathTaskfile.yml
More file actions
138 lines (138 loc) · 6.89 KB
/
Taskfile.yml
File metadata and controls
138 lines (138 loc) · 6.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# See https://taskfile.dev/usage/
version: "3"
env:
TEST_TIMEOUT: 1800
LONG_TEST_TIMEOUT: 3600
dotenv: [".test.env"]
tasks:
### Utility tasks. ###
default:
deps: [build, check-license, check-fmt, check-modules, lint, test-short]
add-license: bash etc/check_license.sh -a
check-license: bash etc/check_license.sh
init-submodule: git submodule update --init
build:
deps: [install-libmongocrypt]
cmds:
- go build ./...
- go build ${BUILD_TAGS} ./...
- task: build-tests
- task: compilecheck-119
build-tests: go test -short ${BUILD_TAGS} -run ^$$ ./...
compilecheck-119:
dir: internal/test/compilecheck
cmds:
- go mod download
- GOTOOLCHAIN=auto go test -v -run '^TestCompileCheck/go:1\.19$'
build-compile-check-all: bash etc/run-compile-check-test.sh
build-aws-ecs-test: go test -c ./internal/test/aws -o aws.testbin
check-fmt:
deps: [install-lll, install-gofumpt]
cmds:
- bash etc/check_fmt.sh
check-modules: bash etc/check_modules.sh
doc: godoc -http=:6060 -index
fmt:
deps: [install-gofumpt]
cmds:
- gofumpt -w .
api-report: bash etc/api_report.sh
install-libmongocrypt:
cmds: [bash etc/install-libmongocrypt.sh]
status:
- test -d install || test -d /cygdrive/c/libmongocrypt/bin
run-docker: bash etc/run_docker.sh
run-fuzz: bash etc/run-fuzz.sh
cherry-picker: bash etc/cherry-picker.sh
pr-task: bash etc/pr-task.sh
perf-pr-comment: bash etc/perf-pr-comment.sh
# Lint with various GOOS and GOARCH tasks to catch static analysis failures that may only affect
# specific operating systems or architectures. For example, staticcheck will only check for 64-bit
# alignment of atomically accessed variables on 32-bit architectures (see
# https://staticcheck.io/docs/checks#SA1027)
lint:
cmds:
- GOOS=linux GOARCH=386 etc/golangci-lint.sh
- GOOS=linux GOARCH=arm etc/golangci-lint.sh
- GOOS=linux GOARCH=arm64 etc/golangci-lint.sh
- GOOS=linux GOARCH=amd64 etc/golangci-lint.sh
- GOOS=linux GOARCH=ppc64le etc/golangci-lint.sh
- GOOS=linux GOARCH=s390x etc/golangci-lint.sh
govulncheck: bash etc/govulncheck.sh
update-notices: bash etc/generate_notices.pl > THIRD-PARTY-NOTICES
### Local testing tasks. ###
test: go test ${BUILD_TAGS} -timeout {{.TEST_TIMEOUT}}s -p 1 ./...
test-cover:
- go test ${BUILD_TAGS} -timeout {{.TEST_TIMEOUT}}s -cover ${COVER_ARGS} -p 1 ./...
test-race:
- go test ${BUILD_TAGS} -timeout {{.TEST_TIMEOUT}}s -race -p 1 ./...
test-short: go test ${BUILD_TAGS} -timeout 60s -short -race ./...
test-oidc: bash etc/run-oidc-test.sh
test-oidc-remote: bash etc/run-oidc-remote-test.sh
test-atlas-connect:
- go test -v -run ^TestAtlas$ go.mongodb.org/mongo-driver/v2/internal/cmd/testatlas -tags atlastest >> test.suite
test-awskms: bash etc/run-awskms-test.sh
test-azurekms: bash etc/run-azurekms-test.sh
test-gcpkms: bash etc/run-gcpkms-test.sh
test-goleak: bash etc/run-goleak-test.sh
### Local FaaS tasks. ###
build-faas-awslambda:
requires:
vars: [MONGODB_URI]
cmds:
- make -c internal/cmd/faas/awslambda
### Evergreen specific tasks. ###
setup-test: bash etc/setup-test.sh
setup-encryption: bash etc/setup-encryption.sh
evg-test:
- go test -exec "env PKG_CONFIG_PATH=${PKG_CONFIG_PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=$MACOS_LIBRARY_PATH}" ${BUILD_TAGS} -v -timeout {{.TEST_TIMEOUT}}s -p 1 ./... >> test.suite
evg-test-enterprise-auth:
- go run -tags gssapi ./internal/cmd/testentauth/main.go
evg-test-oidc-auth:
- go test -v ./internal/test/oidcauth/... >> test.suite
- go test -v -race ./internal/test/oidcauth/... >> test.suite
evg-test-kmip:
- go test -exec "env PKG_CONFIG_PATH=${PKG_CONFIG_PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=${MACOS_LIBRARY_PATH}" ${BUILD_TAGS} -v -timeout {{.TEST_TIMEOUT}}s ./internal/integration -run TestClientSideEncryptionSpec/kmipKMS >> test.suite
evg-test-client-side-encryption:
- go test -exec "env PKG_CONFIG_PATH=${PKG_CONFIG_PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=${MACOS_LIBRARY_PATH}" ${BUILD_TAGS} -v -timeout {{.TEST_TIMEOUT}}s ./internal/integration -run TestClientSideEncryptionProse >> test.suite
evg-test-load-balancers:
# Load balancer should be tested with all unified tests as well as tests in the following
# components: retryable reads, retryable writes, change streams, initial DNS seedlist discovery.
- go test ${BUILD_TAGS} ./internal/integration -run TestInitialDNSSeedlistDiscoverySpec/load_balanced -v -timeout {{.TEST_TIMEOUT}}s >> test.suite
- go test ${BUILD_TAGS} ./internal/integration -run TestLoadBalancerSupport -v -timeout {{.TEST_TIMEOUT}}s >> test.suite
- go test ${BUILD_TAGS} ./internal/integration -run TestLoadBalancedConnectionHandshake -v -timeout {{.TEST_TIMEOUT}}s >> test.suite
- go test ${BUILD_TAGS} ./internal/integration/unified -run TestUnifiedSpec -v -timeout {{.TEST_TIMEOUT}}s >> test.suite
evg-test-search-index:
# Use the long timeout to wait for the responses from the server.
- go test ./internal/integration -run TestSearchIndexProse -v -timeout {{.LONG_TEST_TIMEOUT}}s >> test.suite
evg-test-ocsp:
- go test -v ./mongo -run TestOCSP ${OCSP_TLS_SHOULD_SUCCEED} >> test.suite
evg-test-versioned-api:
# Versioned API related tests are in the mongo, integration and unified packages.
- go test -exec "env PKG_CONFIG_PATH=${PKG_CONFIG_PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=${MACOS_LIBRARY_PATH}" ${BUILD_TAGS} -v -timeout {{.TEST_TIMEOUT}}s ./mongo >> test.suite
- go test -exec "env PKG_CONFIG_PATH=${PKG_CONFIG_PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=${MACOS_LIBRARY_PATH}" ${BUILD_TAGS} -v -timeout {{.TEST_TIMEOUT}}s ./internal/integration >> test.suite
- go test -exec "env PKG_CONFIG_PATH=${PKG_CONFIG_PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=${MACOS_LIBRARY_PATH}" ${BUILD_TAGS} -v -timeout {{.TEST_TIMEOUT}}s ./internal/integration/unified >> test.suite
evg-test-aws: bash etc/run-mongodb-aws-test.sh
evg-test-aws-ecs: bash etc/run-mongodb-aws-ecs-test.sh
evg-test-deployed-lambda-aws: bash ${DRIVERS_TOOLS}/.evergreen/aws_lambda/run-deployed-lambda-aws-tests.sh
evg-gather-test-suites: find . -name \*.suite | xargs --no-run-if-empty tar czf test_suite.tgz
build-kms-test: go build ${BUILD_TAGS} ./internal/cmd/testkms
### Benchmark specific tasks and support. ###
benchmark:
deps: [perf-files]
cmds:
- go test ${BUILD_TAGS} -benchmem -bench=. ./benchmark | test benchmark.suite
driver-benchmark:
cmds:
- go test ./internal/cmd/benchmark -v --fullRun | tee perf.suite
### Internal tasks. ###
install-gofumpt:
internal: true
cmds:
- go install mvdan.cc/gofumpt@v0.9.2
status:
- command -v gofumpt
install-lll:
internal: true
cmds:
- go install github.com/walle/lll/...@latest