From ce0f39a1c65dd370a5ac8fcccc5087a221a9aafc Mon Sep 17 00:00:00 2001 From: Patrick Freed Date: Thu, 13 Feb 2020 17:10:19 -0500 Subject: [PATCH 1/3] automate building examples in release script --- Examples/Docs/Package.swift | 2 +- etc/build-examples.sh | 21 +++++++++++++++++++++ etc/release.sh | 3 +++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100755 etc/build-examples.sh diff --git a/Examples/Docs/Package.swift b/Examples/Docs/Package.swift index 991ba9a8b..16f53de38 100644 --- a/Examples/Docs/Package.swift +++ b/Examples/Docs/Package.swift @@ -4,7 +4,7 @@ import PackageDescription let package = Package( name: "DocsExamples", dependencies: [ - .package(url: "https://github.com/mongodb/mongo-swift-driver", .branch("master")) + .package(url: "https://github.com/mongodb/mongo-swift-driver", .upToNextMajor(from: "0.1.0")) ], targets: [ .target(name: "DocsExamples", dependencies: ["MongoSwift"]) diff --git a/etc/build-examples.sh b/etc/build-examples.sh new file mode 100755 index 000000000..09b2f59f9 --- /dev/null +++ b/etc/build-examples.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +examples=("BugReport" "Docs" "KituraExample" "PerfectExample" "VaporExample") + +for example_project in ${examples[@]}; do + echo "Building $example_project" + pushd "Examples/$example_project" + swift build + build_success=$? + + rm -rf ./.build + rm Package.resolved + popd + + if [ ${build_success} -eq 0 ]; then + echo "================= Building $example_project succeeded =================" + else + echo "================= Building $example_project failed =================" + exit 1 + fi +done diff --git a/etc/release.sh b/etc/release.sh index ab4fae81b..f9dbc90fe 100755 --- a/etc/release.sh +++ b/etc/release.sh @@ -4,6 +4,9 @@ # exit if any command fails set -e +# verify that the examples build +./etc/build-examples.sh + # update version string for libmongoc handshake sourcery --sources Sources/MongoSwift --templates Sources/MongoSwift/MongoSwiftVersion.stencil --output Sources/MongoSwift/MongoSwiftVersion.swift --args versionString=${1} From 612132ad2337df876c2fe10f07f38bed07d509ca Mon Sep 17 00:00:00 2001 From: Patrick Freed Date: Thu, 13 Feb 2020 17:26:35 -0500 Subject: [PATCH 2/3] update usage --- etc/release.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/release.sh b/etc/release.sh index f9dbc90fe..16b9221e2 100755 --- a/etc/release.sh +++ b/etc/release.sh @@ -1,5 +1,5 @@ -# usage: ./release/release.sh [new version string] -# for example: ./release/release.sh 1.0.0 +# usage: ./etc/release.sh [new version string] +# for example: ./etc/release.sh 1.0.0 # exit if any command fails set -e From b845643d445582d70bb6019c6460661e9d8c7cec Mon Sep 17 00:00:00 2001 From: Patrick Freed Date: Tue, 18 Feb 2020 14:13:12 -0500 Subject: [PATCH 3/3] replace version string before building examples --- etc/build-examples.sh | 20 +++++++++++++++++--- etc/sed.sh | 19 +++++++++++++++++++ etc/vendor-libmongoc.sh | 16 +--------------- 3 files changed, 37 insertions(+), 18 deletions(-) create mode 100755 etc/sed.sh diff --git a/etc/build-examples.sh b/etc/build-examples.sh index 09b2f59f9..4fabebf78 100755 --- a/etc/build-examples.sh +++ b/etc/build-examples.sh @@ -1,21 +1,35 @@ -#!/bin/sh +#!/bin/bash + +exit_code=0 examples=("BugReport" "Docs" "KituraExample" "PerfectExample" "VaporExample") for example_project in ${examples[@]}; do echo "Building $example_project" - pushd "Examples/$example_project" + example_dir="Examples/${example_project}" + + # replace version string with master + etc/sed.sh -i 's/swift-driver", .upToNextMajor[^)]*)/swift-driver", .branch("master")/' "${example_dir}/Package.swift" + + pushd "${example_dir}" + + # don't exit on failure + set +e swift build build_success=$? + set -e rm -rf ./.build rm Package.resolved + git checkout Package.swift popd if [ ${build_success} -eq 0 ]; then echo "================= Building $example_project succeeded =================" else echo "================= Building $example_project failed =================" - exit 1 + exit_code=1 fi done + +exit "${exit_code}" diff --git a/etc/sed.sh b/etc/sed.sh new file mode 100755 index 000000000..799b9e670 --- /dev/null +++ b/etc/sed.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +case "$(uname -s)" in + Darwin) + sed=gsed + ;; + *) + sed=sed + ;; +esac + +if ! hash ${sed} 2>/dev/null; then + echo "You need sed \"${sed}\" to run this script ..." + echo + echo "On macOS: brew install gnu-sed" + exit 43 +fi + +${sed} "$@" diff --git a/etc/vendor-libmongoc.sh b/etc/vendor-libmongoc.sh index fa5f3e7e0..1d1d5f34e 100755 --- a/etc/vendor-libmongoc.sh +++ b/etc/vendor-libmongoc.sh @@ -28,21 +28,7 @@ if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then exit 1 fi -case "$(uname -s)" in - Darwin) - sed=gsed - ;; - *) - sed=sed - ;; -esac - -if ! hash ${sed} 2>/dev/null; then - echo "You need sed \"${sed}\" to run this script ..." - echo - echo "On macOS: brew install gnu-sed" - exit 43 -fi +sed="$ETC_DIR/sed.sh" echo "REMOVING any previously vendored libmongoc code" rm -rf $CLIBMONGOC_INCLUDE_PATH