@@ -160,6 +160,8 @@ functions:
160160 SWIFT_VERSION=${SWIFT_VERSION} \
161161 MONGODB_API_VERSION=${MONGODB_API_VERSION} \
162162 TEST_FILTER=${TEST_FILTER} \
163+ SANITIZE=${SANITIZE} \
164+ CHECK_LEAKS=${CHECK_LEAKS} \
163165 ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
164166
165167 " upload test results " :
@@ -356,6 +358,17 @@ functions:
356358 LINUX_SOURCEKIT_LIB_PATH=${PROJECT_DIRECTORY}/opt/swiftenv/versions/${SWIFT_VERSION}/usr/lib \
357359 ${PROJECT_DIRECTORY}/opt/swiftlint/.build/release/swiftlint --strict --quiet
358360
361+ " compile " :
362+ - command : shell.exec
363+ type : test
364+ params :
365+ working_dir : " src"
366+ script : |
367+ ${PREPARE_SHELL}
368+
369+ SWIFT_VERSION=${SWIFT_VERSION} \
370+ ${PROJECT_DIRECTORY}/.evergreen/compile.sh
371+
359372 start-load-balancer :
360373 - command : shell.exec
361374 params :
@@ -416,6 +429,10 @@ post:
416429 - func : " cleanup"
417430
418431tasks :
432+ - name : " compile"
433+ commands :
434+ - func : " compile"
435+
419436 - name : " test-3.6-standalone"
420437 tags : ["3.6", "standalone"]
421438 commands :
@@ -1085,7 +1102,7 @@ axes:
10851102 - id : " 5.4"
10861103 display_name : " Swift 5.4"
10871104 variables :
1088- SWIFT_VERSION : " 5.4"
1105+ SWIFT_VERSION : " 5.4.2 "
10891106 - id : " 5.5-dev"
10901107 display_name : " Swift 5.5-dev"
10911108 variables :
@@ -1138,6 +1155,28 @@ axes:
11381155 ORCHESTRATION_FILE : " versioned-api-testing.json"
11391156 TEST_FILTER : " VersionedAPITests"
11401157
1158+ - id : sanitize
1159+ display_name : Sanitize
1160+ values :
1161+ - id : tsan
1162+ display_name : TSan
1163+ variables :
1164+ SANITIZE : " thread"
1165+ # ASan is unfortunately known to produce false positives in Swift, see
1166+ # https://forums.swift.org/t/test-for-memory-leaks-in-ci/36526/9
1167+ # - id: asan
1168+ # display_name: ASan
1169+ # variables:
1170+ # SANITIZE: "address"
1171+
1172+ - id : check-leaks
1173+ display_name : Check Leaks
1174+ values :
1175+ - id : leaks
1176+ display_name : Leaks
1177+ variables :
1178+ CHECK_LEAKS : leaks
1179+
11411180task_groups :
11421181 - name : serverless_task_group
11431182 setup_group_can_fail_task : true
@@ -1174,40 +1213,22 @@ task_groups:
11741213 - " .serverless"
11751214
11761215buildvariants :
1177- # there are no 5.1 toolchains for Ubuntu 20.04. unfortunately as of now we cannot remove
1178- # entire buildvariants via rule from the main matrix so we need to split this up. see EVG-13092
1179- - matrix_name : " tests-5.1"
1216+
1217+ - matrix_name : " min-version-compile"
11801218 matrix_spec :
1219+ # Ubuntu 20.04 does not have Swift 5.1 toolchains.
11811220 os-fully-featured :
1182- - " ubuntu-18.04"
11831221 - " macos-10.15"
1222+ - " ubuntu-18.04"
11841223 swift-version : " 5.1"
1185- ssl-auth : " *"
1186- display_name : " ${swift-version} ${os-fully-featured} ${ssl-auth}"
1224+ display_name : " Compile ${swift-version} ${os-fully-featured}"
11871225 tasks :
1188- - " .latest !.load-balancer"
1189- - " .5.0"
1190- - " .4.4"
1191- - " .4.2"
1192- - " .4.0"
1193- - " .3.6"
1194- rules :
1195- # MongoDB 3.6 does not have Ubuntu 18.04-specific Linux releases, so we just use
1196- # generic Linux there. This do not link to OpenSSL, so we have to skip SSL tests.
1197- - if :
1198- os-fully-featured :
1199- - " ubuntu-18.04"
1200- swift-version : " *"
1201- ssl-auth : " ssl-auth"
1202- then :
1203- remove_tasks :
1204- - " .3.6"
1226+ - " compile"
12051227
12061228- matrix_name : " tests-all"
12071229 matrix_spec :
12081230 os-fully-featured : " *"
12091231 swift-version :
1210- - " 5.2"
12111232 - " 5.3"
12121233 - " 5.4"
12131234 - " 5.5-dev"
@@ -1245,23 +1266,10 @@ buildvariants:
12451266 - " .4.0"
12461267 - " .4.2"
12471268
1248- # there are no 5.1 toolchains for Ubuntu 20.04. unfortunately as of now we cannot remove
1249- # entire buildvariants via rule from the main matrix so we need to split this up. see EVG-13092
1250- - matrix_name : " atlas-connect-5.1"
1251- matrix_spec :
1252- os-fully-featured :
1253- - " macos-10.15"
1254- - " ubuntu-18.04"
1255- swift-version : " 5.1"
1256- display_name : " Atlas Connectivity ${swift-version} ${os-fully-featured}"
1257- tasks :
1258- - " .atlas-connect"
1259-
12601269- matrix_name : " atlas-connect"
12611270 matrix_spec :
12621271 os-fully-featured : " *"
12631272 swift-version :
1264- - " 5.2"
12651273 - " 5.3"
12661274 - " 5.4"
12671275 - " 5.5-dev"
@@ -1276,7 +1284,6 @@ buildvariants:
12761284 - " ubuntu-20.04"
12771285 ssl-auth : " *"
12781286 swift-version :
1279- - " 5.2"
12801287 - " 5.3"
12811288 - " 5.4"
12821289 - " 5.5-dev"
@@ -1303,8 +1310,7 @@ buildvariants:
13031310 - latest
13041311 - 5.0
13051312 - 4.4
1306- swift-version :
1307- - 5.2
1313+ swift-version : " 5.4"
13081314 display_name : " OCSP ${swift-version} ${os-fully-featured} ${versions}"
13091315 batchtime : 20160 # 14 days
13101316 tasks :
@@ -1321,10 +1327,8 @@ buildvariants:
13211327
13221328- matrix_name : " ocsp-macos"
13231329 matrix_spec :
1324- os-fully-featured :
1325- - macos-10.15
1326- swift-version :
1327- - 5.2
1330+ os-fully-featured : " macos-10.15"
1331+ swift-version : " 5.4"
13281332 versions :
13291333 - latest
13301334 - 5.0
@@ -1338,7 +1342,7 @@ buildvariants:
13381342- matrix_name : " versioned-api-tests"
13391343 matrix_spec :
13401344 os-fully-featured : ubuntu-18.04
1341- swift-version : " 5.3 "
1345+ swift-version : " 5.4 "
13421346 versionedAPI : " *"
13431347 display_name : " Versioned API ${versionedAPI} ${swift-version} ${os-fully-featured}"
13441348 batchtime : 10080 # 7 days
@@ -1350,7 +1354,7 @@ buildvariants:
13501354 display_name : " Format and Lint"
13511355 matrix_spec :
13521356 os-fully-featured : " ubuntu-18.04"
1353- swift-version : " 5.3 "
1357+ swift-version : " 5.4 "
13541358 tasks :
13551359 - name : " check-format"
13561360 - name : " check-lint"
@@ -1359,6 +1363,26 @@ buildvariants:
13591363 display_name : " Check Sourcery"
13601364 matrix_spec :
13611365 os-fully-featured : " macos-10.15"
1362- swift-version : " 5.2 "
1366+ swift-version : " 5.4 "
13631367 tasks :
13641368 - name : " check-sourcery"
1369+
1370+ - matrix_name : " sanitize"
1371+ display_name : " ${sanitize} ${os-fully-featured} ${ssl-auth}"
1372+ matrix_spec :
1373+ os-fully-featured : " ubuntu-18.04"
1374+ swift-version : " 5.4"
1375+ ssl-auth : " *"
1376+ sanitize : " tsan"
1377+ tasks :
1378+ - " .5.0"
1379+
1380+ - matrix_name : " leaks"
1381+ display_name : " Leak Checker ${os-fully-featured} ${ssl-auth}"
1382+ matrix_spec :
1383+ os-fully-featured : " macos-10.15"
1384+ swift-version : " 5.4"
1385+ ssl-auth : " *"
1386+ check-leaks : " leaks"
1387+ tasks :
1388+ - " .5.0"
0 commit comments