182 lines
5.8 KiB
Bash
Executable File
182 lines
5.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
#set -o xtrace
|
|
|
|
RESET="\033[0m"
|
|
BLACK="\033[30m"
|
|
RED="\033[31m"
|
|
GREEN="\033[32m"
|
|
YELLOW="\033[33m"
|
|
BLUE="\033[34m"
|
|
MAGENTA="\033[35m"
|
|
CYAN="\033[36m"
|
|
WHITE="\033[37m"
|
|
BOLDBLACK="\033[1m\033[30m"
|
|
BOLDRED="\033[1m\033[31m"
|
|
BOLDGREEN="\033[1m\033[32m"
|
|
BOLDYELLOW="\033[1m\033[33m"
|
|
BOLDBLUE="\033[1m\033[34m"
|
|
BOLDMAGENTA="\033[1m\033[35m"
|
|
BOLDCYAN="\033[1m\033[36m"
|
|
BOLDWHITE="\033[1m\033[37m"
|
|
|
|
# make sure all tests are passing
|
|
|
|
DEFAULT_IOS7_SIMULATOR=RxSwiftTest-iPhone4s-iOS_7.1
|
|
DEFAULT_IOS8_SIMULATOR=RxSwiftTest-iPhone6-iOS_8.4
|
|
DEFAULT_IOS9_SIMULATOR=RxSwiftTest-iPhone6-iOS_9.0
|
|
DEFAULT_WATCHOS2_SIMULATOR=RxSwiftTest-AppleWatch-watchOS_2.0
|
|
DEFAULT_TVOS_SIMULATOR=RxSwiftTest-AppleTV-iOS_9.0
|
|
|
|
DEFAULT_IOS_SIMULATOR_RUNTIME=""
|
|
|
|
function runtime_available() {
|
|
if [ `xcrun simctl list runtimes | grep "${1}" | wc -l` -eq 1 ]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# used to check simulator name
|
|
function contains() {
|
|
string="$1"
|
|
substring="$2"
|
|
if test "${string#*$substring}" != "$string"
|
|
then
|
|
return 0 # $substring is in $string
|
|
else
|
|
return 1 # $substring is not in $string
|
|
fi
|
|
}
|
|
|
|
function simulator_available() {
|
|
SIMULATOR=$1
|
|
if [ `xcrun simctl list | grep "${SIMULATOR}" | wc -l` -eq 0 ]; then
|
|
return -1
|
|
elif [ `xcrun simctl list | grep "${SIMULATOR}" | wc -l` -gt 1 ]; then
|
|
echo "Multiple simulators ${SIMULATOR} found"
|
|
xcrun simctl list | \
|
|
grep "${SIMULATOR}" | \
|
|
cut -d "(" -f 2 | \
|
|
cut -d ")" -f 1 | \
|
|
xargs xcrun simctl delete;
|
|
exit -1
|
|
return -1
|
|
elif [ `xcrun simctl list | grep "${SIMULATOR}" | grep "unavailable" | wc -l` -eq 1 ]; then
|
|
# delete unavailable simulator
|
|
xcrun simctl list |
|
|
grep "${SIMULATOR}" |
|
|
grep "unavailable" |
|
|
cut -d "(" -f 2 |
|
|
cut -d ")" -f 1 |
|
|
xargs xcrun simctl delete
|
|
return -1
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
if [ "${IS_LOCAL}" == "1" ]; then
|
|
IOS7_SIMULATORS="RxSwiftTest-iPhone4s-iOS_7.1 RxSwiftTest-iPhone5-iOS_7.1 RxSwiftTest-iPhone5s-iOS_7.1"
|
|
IOS8_SIMULATORS="RxSwiftTest-iPhone4s-iOS_8.4 RxSwiftTest-iPhone5-iOS_8.4 RxSwiftTest-iPhone5s-iOS_8.4 RxSwiftTest-iPhone6-iOS_8.4 RxSwiftTest-iPhone6Plus-iOS_8.4"
|
|
else
|
|
IOS7_SIMULATORS="RxSwiftTest-iPhone4s-iOS_7.1"
|
|
IOS8_SIMULATORS="RxSwiftTest-iPhone4s-iOS_8.4"
|
|
fi
|
|
|
|
|
|
if runtime_available "com.apple.CoreSimulator.SimRuntime.iOS-9-1"; then
|
|
DEFAULT_IOS9_SIMULATOR="RxSwiftTest-iPhone6-iOS_9.1"
|
|
DEFAULT_IOS_SIMULATOR_RUNTIME='com.apple.CoreSimulator.SimRuntime.iOS-9-1'
|
|
else
|
|
DEFAULT_IOS9_SIMULATOR="RxSwiftTest-iPhone6-iOS_9.0"
|
|
DEFAULT_IOS_SIMULATOR_RUNTIME='com.apple.CoreSimulator.SimRuntime.iOS-9-0'
|
|
fi
|
|
|
|
|
|
BUILD_DIRECTORY=build
|
|
|
|
function rx() {
|
|
SCHEME=$1
|
|
CONFIGURATION=$2
|
|
SIMULATOR=$3
|
|
ACTION=$4
|
|
|
|
echo
|
|
printf "${GREEN}${ACTION} ${BOLDCYAN}$SCHEME - $CONFIGURATION ($SIMULATOR)${RESET}\n"
|
|
echo
|
|
|
|
DESTINATION=""
|
|
if [ "$SIMULATOR" != "" ]; then
|
|
OS=`echo $SIMULATOR | cut -d'_' -f 2`
|
|
if contains $SIMULATOR "watchOS"; then
|
|
DESTINATION='platform=watchOS Simulator,OS='$OS',name='$SIMULATOR''
|
|
elif contains $SIMULATOR "AppleTV"; then
|
|
DESTINATION='platform=tvOS Simulator,OS='$OS',name='$SIMULATOR''
|
|
else
|
|
DESTINATION='platform=iOS Simulator,OS='$OS',name='$SIMULATOR''
|
|
fi
|
|
else
|
|
DESTINATION='platform=OS X,arch=x86_64'
|
|
fi
|
|
|
|
STATUS=""
|
|
xcodebuild -workspace Rx.xcworkspace \
|
|
-scheme $SCHEME \
|
|
-configuration $CONFIGURATION \
|
|
-derivedDataPath "${BUILD_DIRECTORY}" \
|
|
-destination "$DESTINATION" \
|
|
$ACTION | xcpretty -c; STATUS=${PIPESTATUS[0]}
|
|
|
|
if [ $STATUS -ne 0 ]; then
|
|
echo $STATUS
|
|
exit $STATUS
|
|
fi
|
|
}
|
|
|
|
# simulators
|
|
|
|
# xcrun simctl list devicetypes
|
|
# xcrun simctl list runtimes
|
|
|
|
function createDevices() {
|
|
xcrun simctl create RxSwiftTest-iPhone4s-iOS_7.1 'iPhone 4s' 'com.apple.CoreSimulator.SimRuntime.iOS-7-1'
|
|
xcrun simctl create RxSwiftTest-iPhone5-iOS_7.1 'iPhone 5' 'com.apple.CoreSimulator.SimRuntime.iOS-7-1'
|
|
xcrun simctl create RxSwiftTest-iPhone5s-iOS_7.1 'iPhone 5s' 'com.apple.CoreSimulator.SimRuntime.iOS-7-1'
|
|
|
|
xcrun simctl create RxSwiftTest-iPhone4s-iOS_8.4 'iPhone 4s' 'com.apple.CoreSimulator.SimRuntime.iOS-8-4'
|
|
xcrun simctl create RxSwiftTest-iPhone5-iOS_8.4 'iPhone 5' 'com.apple.CoreSimulator.SimRuntime.iOS-8-4'
|
|
xcrun simctl create RxSwiftTest-iPhone5s-iOS_8.4 'iPhone 5s' 'com.apple.CoreSimulator.SimRuntime.iOS-8-4'
|
|
|
|
xcrun simctl create RxSwiftTest-iPhone6-iOS_8.4 'iPhone 6' 'com.apple.CoreSimulator.SimRuntime.iOS-8-4'
|
|
xcrun simctl create RxSwiftTest-iPhone6Plus-iOS_8.4 'iPhone 6 Plus' 'com.apple.CoreSimulator.SimRuntime.iOS-8-4'
|
|
|
|
xcrun simctl create RxSwiftTest-iPhone4s-iOS_9.0 'iPhone 4s' 'com.apple.CoreSimulator.SimRuntime.iOS-9-0'
|
|
xcrun simctl create RxSwiftTest-iPhone5-iOS_9.0 'iPhone 5' 'com.apple.CoreSimulator.SimRuntime.iOS-9-0'
|
|
xcrun simctl create RxSwiftTest-iPhone5s-iOS_9.0 'iPhone 5s' 'com.apple.CoreSimulator.SimRuntime.iOS-9-0'
|
|
|
|
xcrun simctl create RxSwiftTest-iPhone6-iOS_9.0 'iPhone 6' 'com.apple.CoreSimulator.SimRuntime.iOS-9-0'
|
|
xcrun simctl create RxSwiftTest-iPhone6Plus-iOS_9.0 'iPhone 6 Plus' 'com.apple.CoreSimulator.SimRuntime.iOS-9-0'
|
|
}
|
|
|
|
function deleteDevices() {
|
|
xcrun simctl delete RxSwiftTest-iPhone4s-iOS_7.1 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone5-iOS_7.1 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone5s-iOS_7.1 || echo "failed"
|
|
|
|
xcrun simctl delete RxSwiftTest-iPhone4s-iOS_8.4 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone5-iOS_8.4 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone5s-iOS_8.4 || echo "failed"
|
|
|
|
xcrun simctl delete RxSwiftTest-iPhone6-iOS_8.4 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone6Plus-iOS_8.4 || echo "failed"
|
|
|
|
xcrun simctl delete RxSwiftTest-iPhone4s-iOS_9.0 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone5-iOS_9.0 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone5s-iOS_9.0 || echo "failed"
|
|
|
|
xcrun simctl delete RxSwiftTest-iPhone6-iOS_9.0 || echo "failed"
|
|
xcrun simctl delete RxSwiftTest-iPhone6Plus-iOS_9.0 || echo "failed"
|
|
}
|