Browse Source

Enable autobahn and carthage tests on Travis-CI for iOS.

Nikita Lutsenko 9 years ago
parent
commit
c1dc8647ce

+ 35 - 22
.travis.yml

@@ -2,29 +2,42 @@ branches:
   only:
     - master
 language: objective-c
+os: osx
 osx_image: xcode7.3
-sudo: false
-xcode_project: SocketRocket.xcodeproj
 env:
-  global:
-    - IOS_SDK=iphonesimulator9.3
-    - IOS_SCHEME="SocketRocket-iOS"
-    - MACOS_SDK=macosx10.11
-    - MACOS_SCHEME="SocketRocketOSX"
-    - TVOS_SDK=appletvsimulator9.2
-    - TVOS_SCHEME="SocketRocket-tvOS"
   matrix:
-    - DESTINATION="OS=9.3,name=iPad 2"         SDK="$IOS_SDK"   SCHEME="$IOS_SCHEME"
-    - DESTINATION="OS=9.3,name=iPad Air"       SDK="$IOS_SDK"   SCHEME="$IOS_SCHEME"
-    - DESTINATION="OS=9.3,name=iPhone 5"       SDK="$IOS_SDK"   SCHEME="$IOS_SCHEME"
-    - DESTINATION="OS=9.3,name=iPhone 6s"      SDK="$IOS_SDK"   SCHEME="$IOS_SCHEME"
-    - DESTINATION="OS=8.4,name=iPhone 6"       SDK="$IOS_SDK"   SCHEME="$IOS_SCHEME"
-    - DESTINATION="OS=8.4,name=iPad Air"       SDK="$IOS_SDK"   SCHEME="$IOS_SCHEME"
-    - DESTINATION="OS=9.2,name=Apple TV 1080p" SDK="$TVOS_SDK"  SCHEME="$TVOS_SCHEME"
-    - DESTINATION="platform=OS X"              SDK="$MACOS_SDK" SCHEME="$MACOS_SCHEME"
-before_script:
-    - bundle install
+    - TEST_TYPE=iOS
+    - TEST_TYPE=OSX
+    - TEST_TYPE=tvOS
+    - TEST_TYPE=CocoaPods
+    - TEST_TYPE=Carthage
+before_install:
+- |
+  if [ "$TEST_TYPE" = iOS ] || [ "$TEST_TYPE" = OSX ] || [ "$TEST_TYPE" = tvOS ]; then
+    bundle install
+  elif [ "$TEST_TYPE" = Carthage ]; then    
+    brew update
+    brew install carthage || brew upgrade carthage
+  fi
+install:
+- |
+  if [ "$TEST_TYPE" = iOS ]; then
+    ./TestSupport/setup_env.sh .env
+  fi
 script:
-    - xcodebuild -version
-    - xcodebuild -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug -PBXBuildsContinueAfterErrors=0 ACTIVE_ARCH_ONLY=0 build test | xcpretty -tc
-    - pod lib lint --verbose --fail-fast
+- |
+  if [ "$TEST_TYPE" = iOS ]; then
+    set -o pipefail
+    xcodebuild -project SocketRocket.xcodeproj -scheme "SocketRocket" -sdk iphonesimulator build test
+  elif [ "$TEST_TYPE" = OSX ]; then
+    set -o pipefail
+    xcodebuild -project SocketRocket.xcodeproj -scheme "SocketRocket-OSX" -sdk macosx build | xcpretty -c
+  elif [ "$TEST_TYPE" = tvOS ]; then
+    set -o pipefail
+    xcodebuild -project SocketRocket.xcodeproj -scheme "SocketRocket-tvOS" -sdk appletvsimulator build | xcpretty -c
+  elif [ "$TEST_TYPE" = CocoaPods ]; then
+    pod lib lint SocketRocket.podspec
+    pod lib lint --use-libraries SocketRocket.podspec
+  elif [ "$TEST_TYPE" = Carthage ]; then
+    carthage build --no-skip-current
+  fi

+ 1 - 1
SocketRocket.xcodeproj/xcshareddata/xcschemes/SocketRocket.xcscheme

@@ -46,7 +46,7 @@
             ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
             <ActionContent
                title = "Run Script"
-               scriptText = "PIDFILE=$TMPDIR/sr_test_server.pid&#10;&#10;if [ -r $PIDFILE ]; then&#10;    EXISTING_PID=`cat $PIDFILE`&#10;    echo &quot;Killing Dangling SRTextharneess PID:&quot; $EXISTING_PID&#10;    kill $EXISTING_PID&#10;    rm $PIDFILE&#10;fi&#10;&#10;pushd $PROJECT_DIR&#10;&#10;export MACOSX_DEPLOYMENT_TARGET=&#10;&#10;bash $PROJECT_DIR/TestSupport/setup_env.sh $PROJECT_DIR/.env&#10;&#10;nohup TestSupport/run_test_server.sh &amp;&#10;&#10;echo $! &gt; $PIDFILE&#10;&#10;popd"
+               scriptText = "PIDFILE=$TMPDIR/sr_test_server.pid&#10;&#10;if [ -r $PIDFILE ]; then&#10;  EXISTING_PID=`cat $PIDFILE`&#10;  echo &quot;Killing Dangling Autobahn Server PID:&quot; $EXISTING_PID&#10;  kill $EXISTING_PID || true&#10;  rm $PIDFILE&#10;fi&#10;&#10;pushd $PROJECT_DIR&#10;&#10;source .env/bin/activate&#10;nohup ./TestSupport/run_test_server.sh &amp;&#10;&#10;echo $! &gt; $PIDFILE&#10;&#10;popd&#10;"
                shellToInvoke = "/bin/bash">
                <EnvironmentBuildable>
                   <BuildableReference

+ 7 - 6
TestSupport/setup_env.sh

@@ -11,6 +11,8 @@ VIRTUALENV_VERSION=15.0.1
 
 if [ -d "$VIRTUALENV_PATH" ]; then 
 	echo "Virtual Env already installed"
+elif [ -z "$VIRTUALENV_PATH" ]; then
+  echo "Usage: ./setup_env.sh <folder path>"
 else
   mkdir $VIRTUALENV_PATH
 
@@ -20,16 +22,15 @@ else
   tar xvfz virtualenv.tar.gz
   
   pushd virtualenv-$VIRTUALENV_VERSION
-  python setup.py develop
+  python setup.py install --user
   popd
   
   popd
-  
+
   python $VIRTUALENV_PATH/virtualenv-$VIRTUALENV_VERSION/virtualenv.py $VIRTUALENV_PATH
-  
+
   source $VIRTUALENV_PATH/bin/activate
-  env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography
-  
-  pip install unittest2
 	pip install autobahntestsuite
+  
+  echo "Environment succesfully set up in $VIRTUALENV_PATH."
 fi