Skip to content

Commit a28aa3c

Browse files
authored
SWIFT-1358 Update Swift versions tested on Evergreen (#685)
1 parent 96f8384 commit a28aa3c

File tree

11 files changed

+87
-162
lines changed

11 files changed

+87
-162
lines changed

.evergreen/compile.sh

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,11 @@ set -o xtrace # Write all commands first to stderr
33
set -o errexit # Exit the script with error if any of the commands fail
44

55
# variables
6-
SWIFT_VERSION=${SWIFT_VERSION:-5.4.2}
6+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
7+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
78
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
8-
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
99

10-
# enable swiftenv
11-
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
12-
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
13-
eval "$(swiftenv init -)"
10+
# configure Swift
11+
. ${PROJECT_DIRECTORY}/.evergreen/configure-swift.sh
1412

15-
if [ "$OS" == "darwin" ]; then
16-
# 5.1, 5.2 require an older version of Xcode/Command Line Tools
17-
if [[ "$SWIFT_VERSION" == 5.1.* || "$SWIFT_VERSION" == 5.2.* ]]; then
18-
sudo xcode-select -s /Applications/Xcode11.3.app
19-
else
20-
sudo xcode-select -s /Applications/Xcode12.app
21-
fi
22-
fi
23-
24-
# switch swift version and build
25-
swiftenv local $SWIFT_VERSION
2613
swift build

.evergreen/config.yml

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,10 +1106,14 @@ axes:
11061106
display_name: "Swift 5.4"
11071107
variables:
11081108
SWIFT_VERSION: "5.4.2"
1109-
- id: "5.5-dev"
1110-
display_name: "Swift 5.5-dev"
1109+
- id: "5.5"
1110+
display_name: "Swift 5.5"
11111111
variables:
1112-
SWIFT_VERSION: "DEVELOPMENT-SNAPSHOT-2021-04-26-a"
1112+
SWIFT_VERSION: "5.5"
1113+
- id: "6.0-dev"
1114+
display_name: "Swift 6.0-dev"
1115+
variables:
1116+
SWIFT_VERSION: "main-snapshot"
11131117

11141118
- id: ssl-auth
11151119
display_name: SSL and Auth
@@ -1233,9 +1237,9 @@ buildvariants:
12331237
matrix_spec:
12341238
os-fully-featured: "*"
12351239
swift-version:
1236-
- "5.3"
12371240
- "5.4"
1238-
- "5.5-dev"
1241+
- "5.5"
1242+
- "6.0-dev"
12391243
ssl-auth: "*"
12401244
display_name: "${swift-version} ${os-fully-featured} ${ssl-auth}"
12411245
tasks:
@@ -1274,9 +1278,8 @@ buildvariants:
12741278
matrix_spec:
12751279
os-fully-featured: "*"
12761280
swift-version:
1277-
- "5.3"
12781281
- "5.4"
1279-
- "5.5-dev"
1282+
- "5.5"
12801283
display_name: "Atlas Connectivity ${swift-version} ${os-fully-featured}"
12811284
tasks:
12821285
- ".atlas-connect"
@@ -1288,9 +1291,8 @@ buildvariants:
12881291
- "ubuntu-20.04"
12891292
ssl-auth: "*"
12901293
swift-version:
1291-
- "5.3"
12921294
- "5.4"
1293-
- "5.5-dev"
1295+
- "5.5"
12941296
display_name: "Load Balancer ${swift-version} ${os-fully-featured} ${ssl-auth}"
12951297
tasks:
12961298
- ".load-balancer"
@@ -1314,7 +1316,7 @@ buildvariants:
13141316
- latest
13151317
- 5.0
13161318
- 4.4
1317-
swift-version: "5.4"
1319+
swift-version: "5.5"
13181320
display_name: "OCSP ${swift-version} ${os-fully-featured} ${versions}"
13191321
batchtime: 20160 # 14 days
13201322
tasks:
@@ -1332,7 +1334,7 @@ buildvariants:
13321334
- matrix_name: "ocsp-macos"
13331335
matrix_spec:
13341336
os-fully-featured: "macos-10.15"
1335-
swift-version: "5.4"
1337+
swift-version: "5.5"
13361338
versions:
13371339
- latest
13381340
- 5.0
@@ -1346,7 +1348,7 @@ buildvariants:
13461348
- matrix_name: "versioned-api-tests"
13471349
matrix_spec:
13481350
os-fully-featured: ubuntu-18.04
1349-
swift-version: "5.4"
1351+
swift-version: "5.5"
13501352
versionedAPI: "*"
13511353
display_name: "Versioned API ${versionedAPI} ${swift-version} ${os-fully-featured}"
13521354
batchtime: 10080 # 7 days
@@ -1358,7 +1360,7 @@ buildvariants:
13581360
display_name: "Format and Lint"
13591361
matrix_spec:
13601362
os-fully-featured: "ubuntu-18.04"
1361-
swift-version: "5.4"
1363+
swift-version: "5.4" # upgrading is blocked on a SwiftLint release > 0.44
13621364
tasks:
13631365
- name: "check-format"
13641366
- name: "check-lint"
@@ -1367,15 +1369,15 @@ buildvariants:
13671369
display_name: "Check Sourcery"
13681370
matrix_spec:
13691371
os-fully-featured: "macos-10.15"
1370-
swift-version: "5.4"
1372+
swift-version: "5.5"
13711373
tasks:
13721374
- name: "check-sourcery"
13731375

13741376
- matrix_name: "sanitize"
13751377
display_name: "${sanitize} ${os-fully-featured} ${ssl-auth}"
13761378
matrix_spec:
13771379
os-fully-featured: "ubuntu-18.04"
1378-
swift-version: "5.4"
1380+
swift-version: "5.5"
13791381
ssl-auth: "*"
13801382
sanitize: "tsan"
13811383
tasks:
@@ -1385,7 +1387,7 @@ buildvariants:
13851387
display_name: "Leak Checker ${os-fully-featured} ${ssl-auth}"
13861388
matrix_spec:
13871389
os-fully-featured: "macos-10.15"
1388-
swift-version: "5.4"
1390+
swift-version: "5.5"
13891391
ssl-auth: "*"
13901392
check-leaks: "leaks"
13911393
tasks:

.evergreen/configure-swift.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
# This script sets up the required version of Swift correctly using swiftenv.
4+
# This script should be run as:
5+
# . path-to-script/configure-swift.sh
6+
# So that its commands are run within the calling context and the script can
7+
# properly set environment variables used there.
8+
9+
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
10+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
11+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
12+
INSTALL_DIR=${INSTALL_DIR:-"MISSING_INSTALL_DIR"}
13+
14+
# enable swiftenv
15+
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
16+
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
17+
eval "$(swiftenv init -)"
18+
19+
# dynamically determine latest available snapshot if needed
20+
if [ "$SWIFT_VERSION" = "main-snapshot" ]; then
21+
SWIFT_VERSION=$(swiftenv install --list-snapshots | tail -1)
22+
fi
23+
24+
if [ "$OS" == "darwin" ]; then
25+
# 5.1, 5.2 require an older version of Xcode/Command Line Tools
26+
if [[ "$SWIFT_VERSION" == 5.1.* || "$SWIFT_VERSION" == 5.2.* ]]; then
27+
sudo xcode-select -s /Applications/Xcode11.3.app
28+
else
29+
sudo xcode-select -s /Applications/Xcode12.app
30+
fi
31+
fi
32+
33+
# switch to current Swift version
34+
swiftenv local $SWIFT_VERSION

.evergreen/install-swift.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
#!/bin/sh
1+
#!/bin/bash
22
set -o xtrace # Write all commands first to stderr
33
set -o errexit # Exit the script with error if any of the commands fail
44

55
# variables
6-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-$PWD}
7-
SWIFT_VERSION=${SWIFT_VERSION:-5.1.5}
6+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
7+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
88
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
99

1010
# this is set by drivers-matrix-testing, and it's a special variable used in swiftenv
@@ -15,8 +15,13 @@ export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
1515
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
1616

1717
# install swiftenv
18-
git clone --depth 1 -b "osx-install-path" https://github.com/mbroadst/swiftenv.git "${SWIFTENV_ROOT}"
18+
git clone --depth 1 -b "osx-install-path" https://github.com/kmahar/swiftenv.git "${SWIFTENV_ROOT}"
1919

2020
# install swift
2121
eval "$(swiftenv init -)"
22+
23+
if [ "$SWIFT_VERSION" = "main-snapshot" ]; then
24+
SWIFT_VERSION=$(swiftenv install --list-snapshots | tail -1)
25+
fi
26+
2227
swiftenv install --install-local $SWIFT_VERSION

.evergreen/install-tools.sh

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ set -o errexit # Exit the script with error if any of the commands fail
55
# Script for installing various tool dependencies.
66

77
# variables
8-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-$PWD}
9-
SWIFT_VERSION=${SWIFT_VERSION:-5.2.4}
8+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
9+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
1010
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
1111

12-
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
13-
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
12+
# configure Swift
13+
. ${PROJECT_DIRECTORY}/.evergreen/configure-swift.sh
1414

1515
# usage: build_from_gh [name] [url] [tag]
1616
build_from_gh () {
@@ -33,10 +33,6 @@ install_from_gh () {
3333
unzip ${INSTALL_DIR}/${NAME}/${NAME}.zip -d ${INSTALL_DIR}/${NAME}
3434
}
3535

36-
# enable swiftenv
37-
eval "$(swiftenv init -)"
38-
swiftenv local $SWIFT_VERSION
39-
4036
if [ $1 == "swiftlint" ]
4137
then
4238
build_from_gh swiftlint https://github.com/realm/SwiftLint "0.44.0"

.evergreen/run-atlas-tests.sh

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,12 @@
22
set -o errexit # Exit the script with error if any of the commands fail
33

44
# variables
5-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-$PWD}
6-
SWIFT_VERSION=${SWIFT_VERSION:-5.0.3}
5+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
6+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
77
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
8-
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
9-
EXTRA_FLAGS="-Xlinker -rpath -Xlinker ${INSTALL_DIR}/lib"
108

11-
# enable swiftenv
12-
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
13-
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
14-
eval "$(swiftenv init -)"
15-
16-
if [ "$OS" == "darwin" ]; then
17-
# 5.1, 5.2 require an older version of Xcode/Command Line Tools
18-
if [[ "$SWIFT_VERSION" == 5.1.* || "$SWIFT_VERSION" == 5.2.* ]]; then
19-
sudo xcode-select -s /Applications/Xcode11.3.app
20-
else
21-
sudo xcode-select -s /Applications/Xcode12.app
22-
fi
23-
fi
24-
25-
swiftenv local $SWIFT_VERSION
9+
# configure Swift
10+
. ${PROJECT_DIRECTORY}/.evergreen/configure-swift.sh
2611

2712
# run the tests
2813
ATLAS_REPL="$ATLAS_REPL" ATLAS_SHRD="$ATLAS_SHRD" ATLAS_FREE="$ATLAS_FREE" ATLAS_TLS11="$ATLAS_TLS11" ATLAS_TLS12="$ATLAS_TLS12" \

.evergreen/run-ocsp-test.sh

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,12 @@ export SSL_CA_FILE="$DRIVERS_TOOLS/.evergreen/ocsp/${OCSP_ALGORITHM}/ca.pem"
2222
export MONGODB_OCSP_TESTING=1
2323
export OCSP_ALGORITHM=${OCSP_ALGORITHM}
2424
export OCSP_TLS_SHOULD_SUCCEED=${OCSP_TLS_SHOULD_SUCCEED}
25-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-$PWD}
26-
SWIFT_VERSION=${SWIFT_VERSION:-5.2.5}
25+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
26+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
2727
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
28-
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
29-
30-
# enable swiftenv
31-
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
32-
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
33-
eval "$(swiftenv init -)"
34-
35-
if [ "$OS" == "darwin" ]; then
36-
# 5.1, 5.2 require an older version of Xcode/Command Line Tools
37-
if [[ "$SWIFT_VERSION" == 5.1.* || "$SWIFT_VERSION" == 5.2.* ]]; then
38-
sudo xcode-select -s /Applications/Xcode11.3.app
39-
else
40-
sudo xcode-select -s /Applications/Xcode12.app
41-
fi
42-
fi
43-
44-
# switch swift version, and run tests
45-
swiftenv local $SWIFT_VERSION
28+
29+
# configure Swift
30+
. ${PROJECT_DIRECTORY}/.evergreen/configure-swift.sh
4631

4732
# build the driver
4833
swift build

.evergreen/run-serverless-tests.sh

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
set -o errexit # Exit the script with error if any of the commands fail
44

55
# variables
6-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-$PWD}
7-
SWIFT_VERSION=${SWIFT_VERSION:-5.2.5}
6+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
7+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
88
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
9-
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
109
INSTALL_DEPS=${INSTALL_DEPS:-"false"}
1110

1211
# if dependencies were not installed separately, do so now.
@@ -16,18 +15,8 @@ if [ "$INSTALL_DEPS" == "true" ]; then
1615
sh ${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh
1716
fi
1817

19-
# enable swiftenv
20-
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
21-
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
22-
eval "$(swiftenv init -)"
23-
24-
# select the latest Xcode for Swift 5.1 support on MacOS
25-
if [ "$OS" == "darwin" ]; then
26-
sudo xcode-select -s /Applications/Xcode11.3.app
27-
fi
28-
29-
# switch swift version, and run tests
30-
swiftenv local $SWIFT_VERSION
18+
# configure Swift
19+
. ${PROJECT_DIRECTORY}/.evergreen/configure-swift.sh
3120

3221
# build the driver
3322
swift build

.evergreen/run-tests.sh

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ set -o xtrace # Write all commands first to stderr
33
set -o errexit # Exit the script with error if any of the commands fail
44

55
# variables
6-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-$PWD}
6+
PROJECT_DIRECTORY=${PROJECT_DIRECTORY:-"MISSING_PROJECT_DIRECTORY"}
77
MONGODB_URI=${MONGODB_URI:-"NO_URI_PROVIDED"}
88
SINGLE_MONGOS_LB_URI=${SINGLE_MONGOS_LB_URI:-"NO_URI_PROVIDED"}
99
MULTI_MONGOS_LB_URI=${MULTI_MONGOS_LB_URI:-"NO_URI_PROVIDED"}
10-
SWIFT_VERSION=${SWIFT_VERSION:-5.2.5}
10+
SWIFT_VERSION=${SWIFT_VERSION:-"MISSING_SWIFT_VERSION"}
1111
INSTALL_DIR="${PROJECT_DIRECTORY}/opt"
1212
TOPOLOGY=${TOPOLOGY:-single}
1313
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
@@ -31,22 +31,8 @@ if [ "$INSTALL_DEPS" == "true" ]; then
3131
sh ${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh
3232
fi
3333

34-
# enable swiftenv
35-
export SWIFTENV_ROOT="${INSTALL_DIR}/swiftenv"
36-
export PATH="${SWIFTENV_ROOT}/bin:$PATH"
37-
eval "$(swiftenv init -)"
38-
39-
if [ "$OS" == "darwin" ]; then
40-
# 5.1, 5.2 require an older version of Xcode/Command Line Tools
41-
if [[ "$SWIFT_VERSION" == 5.1.* || "$SWIFT_VERSION" == 5.2.* ]]; then
42-
sudo xcode-select -s /Applications/Xcode11.3.app
43-
else
44-
sudo xcode-select -s /Applications/Xcode12.app
45-
fi
46-
fi
47-
48-
# switch swift version, and run tests
49-
swiftenv local $SWIFT_VERSION
34+
# configure Swift
35+
. ${PROJECT_DIRECTORY}/.evergreen/configure-swift.sh
5036

5137
SANITIZE_STATEMENT=""
5238
if [ "$SANITIZE" != "false" ]; then

.swift-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.4.2
1+
5.5

0 commit comments

Comments
 (0)