[travis] New build script.

In addition to building & testing AsyncDisplayKit, this new build script
can ensure that all example projects still compile.  This will prevent
breaking API changes from landing without updating sample projects that
use them.  It's also extensible, so we can add additional integration
tests in future (e.g., non-CocoaPods framework integration).
This commit is contained in:
Nadine Salter 2015-03-20 15:11:36 -07:00
parent 9eff356a61
commit a9d555d225
2 changed files with 53 additions and 9 deletions

View File

@ -5,8 +5,9 @@ before_install:
- gem update cocoapods
- xcrun simctl list
env:
- TEST_OS=8.1
script: ./build.sh $TEST_OS
- MODE=tests
- MODE=examples
script: ./build.sh $MODE
# whitelist
branches:

View File

@ -1,7 +1,50 @@
#!/bin/sh
xctool \
-workspace AsyncDisplayKit.xcworkspace \
-scheme AsyncDisplayKit \
-sdk iphonesimulator8.1 \
-destination "platform=iOS Simulator,OS=${1},name=iPhone 5" \
build test
#!/bin/bash
# **** Update me when new Xcode versions are released! ****
PLATFORM="platform=iOS Simulator,OS=8.1,name=iPhone 6"
SDK="iphonesimulator8.1"
# It is pitch black.
set -e
function trap_handler() {
echo -e "\n\nOh no! You walked directly into the slavering fangs of a lurking grue!"
echo "**** You have died ****"
exit 255
}
trap trap_handler INT TERM EXIT
MODE="$1"
if [ "$MODE" = "tests" ]; then
echo "Building & testing AsyncDisplayKit."
pod install
xctool \
-workspace AsyncDisplayKit.xcworkspace \
-scheme AsyncDisplayKit \
-sdk "$SDK" \
-destination "$PLATFORM" \
build test
trap - EXIT
exit 0
fi
if [ "$MODE" = "examples" ]; then
echo "Verifying that all AsyncDisplayKit examples compile."
for example in examples/*/; do
echo "Building $example."
pod install --project-directory=$example
xctool \
-workspace "${example}Sample.xcworkspace" \
-scheme Sample \
-sdk "$SDK" \
-destination "$PLATFORM" \
build
done
trap - EXIT
exit 0
fi
echo "Unrecognised mode '$MODE'."