Skip to content

Commit 0410f35

Browse files
authored
SWIFT-536 Automate building examples in release script (#404)
1 parent ba8f3da commit 0410f35

File tree

5 files changed

+61
-18
lines changed

5 files changed

+61
-18
lines changed

Examples/Docs/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import PackageDescription
44
let package = Package(
55
name: "DocsExamples",
66
dependencies: [
7-
.package(url: "https://github.com/mongodb/mongo-swift-driver", .branch("master"))
7+
.package(url: "https://github.com/mongodb/mongo-swift-driver", .upToNextMajor(from: "0.1.0"))
88
],
99
targets: [
1010
.target(name: "DocsExamples", dependencies: ["MongoSwift"])

etc/build-examples.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash
2+
3+
exit_code=0
4+
5+
examples=("BugReport" "Docs" "KituraExample" "PerfectExample" "VaporExample")
6+
7+
for example_project in ${examples[@]}; do
8+
echo "Building $example_project"
9+
example_dir="Examples/${example_project}"
10+
11+
# replace version string with master
12+
etc/sed.sh -i 's/swift-driver", .upToNextMajor[^)]*)/swift-driver", .branch("master")/' "${example_dir}/Package.swift"
13+
14+
pushd "${example_dir}"
15+
16+
# don't exit on failure
17+
set +e
18+
swift build
19+
build_success=$?
20+
set -e
21+
22+
rm -rf ./.build
23+
rm Package.resolved
24+
git checkout Package.swift
25+
popd
26+
27+
if [ ${build_success} -eq 0 ]; then
28+
echo "================= Building $example_project succeeded ================="
29+
else
30+
echo "================= Building $example_project failed ================="
31+
exit_code=1
32+
fi
33+
done
34+
35+
exit "${exit_code}"

etc/release.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
# usage: ./release/release.sh [new version string]
2-
# for example: ./release/release.sh 1.0.0
1+
# usage: ./etc/release.sh [new version string]
2+
# for example: ./etc/release.sh 1.0.0
33

44
# exit if any command fails
55
set -e
66

7+
# verify that the examples build
8+
./etc/build-examples.sh
9+
710
# update version string for libmongoc handshake
811
sourcery --sources Sources/MongoSwift --templates Sources/MongoSwift/MongoSwiftVersion.stencil --output Sources/MongoSwift/MongoSwiftVersion.swift --args versionString=${1}
912

etc/sed.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/sh
2+
3+
case "$(uname -s)" in
4+
Darwin)
5+
sed=gsed
6+
;;
7+
*)
8+
sed=sed
9+
;;
10+
esac
11+
12+
if ! hash ${sed} 2>/dev/null; then
13+
echo "You need sed \"${sed}\" to run this script ..."
14+
echo
15+
echo "On macOS: brew install gnu-sed"
16+
exit 43
17+
fi
18+
19+
${sed} "$@"

etc/vendor-libmongoc.sh

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,7 @@ if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
2828
exit 1
2929
fi
3030

31-
case "$(uname -s)" in
32-
Darwin)
33-
sed=gsed
34-
;;
35-
*)
36-
sed=sed
37-
;;
38-
esac
39-
40-
if ! hash ${sed} 2>/dev/null; then
41-
echo "You need sed \"${sed}\" to run this script ..."
42-
echo
43-
echo "On macOS: brew install gnu-sed"
44-
exit 43
45-
fi
31+
sed="$ETC_DIR/sed.sh"
4632

4733
echo "REMOVING any previously vendored libmongoc code"
4834
rm -rf $CLIBMONGOC_INCLUDE_PATH

0 commit comments

Comments
 (0)