Forráskód Böngészése

For Travis CI - speedup CI build for pull requests.

Yao Wei Tjong 姚伟忠 12 éve
szülő
commit
f95328ac0f
2 módosított fájl, 15 hozzáadás és 7 törlés
  1. 10 6
      .travis.yml
  2. 5 1
      Rakefile

+ 10 - 6
.travis.yml

@@ -3,24 +3,28 @@ env:
     - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
     - DISPLAY=:99.0
   matrix:
-# Disable for now as it fails to install 32-bit prerequisite
-#    - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=0
-#    - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=0
     - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=1
     - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=1 SITE_UPDATE=1
+    - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=0
+    - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=0
     - URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=0 ANDROID_NDK=/home/travis/build/urho3d/Urho3D/android-ndk
     - URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=0 ANDROID_NDK=/home/travis/build/urho3d/Urho3D/android-ndk
+matrix:
+  allow_failures:
+    - env: URHO3D_LIB_TYPE=STATIC ENABLE_64BIT=0
+    - env: URHO3D_LIB_TYPE=SHARED ENABLE_64BIT=0
 language: cpp
 compiler: gcc
 before_install:
     - bash -e /etc/init.d/xvfb start && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1024x768x24
     - bash -c "[ $ANDROID_NDK ] && wget -q http://dl.google.com/android/android-sdk_r22.3-linux.tgz && tar xzf *.tgz && rm *.tgz && ln -s android-sdk* android-sdk && wget -q http://dl.google.com/android/ndk/android-ndk-r9c-linux-x86_64.tar.bz2 && tar xjf *.bz2 && rm *.bz2 && ln -s android-ndk* android-ndk || true"
-    - bash -c "[ $SITE_UPDATE ] && sudo add-apt-repository ppa:george-edison55/precise-backports -y && sudo apt-get update -q -y || true"
+    - bash -c "[ $SITE_UPDATE ] && [ $TRAVIS_PULL_REQUEST == 'false' ] && sudo add-apt-repository ppa:george-edison55/precise-backports -y || true"
+    - sudo apt-get update -q -y
 install:
     - sudo apt-get install -q -y --no-install-recommends libasound2-dev
     - rvm gemset use global && gem install rake
     - bash -c "[ x$ENABLE_64BIT == 'x0' ] &&  sudo apt-get install -q -y libxrandr-dev:i386 libgl1-mesa-dev:i386 g++-multilib || true"
-    - bash -c "[ $ANDROID_NDK ] &&  sudo apt-get install -q -y --no-install-recommends openjdk-7-jdk g++-multilib && (while :; do echo 'y'; sleep 1; done) |android-sdk/tools/android update sdk --no-ui --filter platform-tool,build-tools-19.0.1,android-19,system-image,extra-android-support || true"
-    - bash -c "[ $SITE_UPDATE ] && sudo apt-get install -q -y --no-install-recommends doxygen graphviz || true"
+    - bash -c "[ $ANDROID_NDK ] &&  sudo apt-get install -q -y --no-install-recommends g++-multilib && (while :; do echo 'y'; sleep 1; done) |android-sdk/tools/android update sdk --no-ui --filter platform-tool,build-tools-19.0.1,android-19,system-image,extra-android-support || true"
+    - bash -c "[ $SITE_UPDATE ] && [ $TRAVIS_PULL_REQUEST == 'false' ] && sudo apt-get install -q -y --no-install-recommends doxygen graphviz || true"
 script: rake travis_ci
 after_success: rake travis_ci_site_update

+ 5 - 1
Rakefile

@@ -16,22 +16,26 @@ end
 # Usage: NOT intended to be used manually (if you insist then try: rake travis_ci)
 desc 'Configure, build, and test Urho3D project'
 task :travis_ci do
+  # Tell CMake where to find 32-bit libraries (specific to Ubuntu 12.04 LTS)
   if ENV['ENABLE_64BIT'].to_i == 0
     ENV['CMAKE_PREFIX_PATH'] = '/usr/lib/i386-linux-gnu'
   end
   system './cmake_gcc.sh -DURHO3D_LIB_TYPE=$URHO3D_LIB_TYPE -DENABLE_64BIT=$ENABLE_64BIT -DENABLE_LUAJIT=1 -DENABLE_LUAJIT_AMALG=1 -DENABLE_SAMPLES=1 -DENABLE_TOOLS=1 -DENABLE_EXTRAS=1 -DENABLE_TESTING=1 -DCMAKE_BUILD_TYPE=Debug' or abort 'Failed to configure Urho3D library build'
   if ENV['ANDROID_NDK']
+    # LuaJIT on Android build requires tolua++ and buildvm-android tools to be built natively first
     system 'cd Build/ThirdParty/toluapp/src/bin && make' or abort 'Failed to build tolua++ tool'
     system 'cd Build/ThirdParty/LuaJIT/generated/buildvm-android && make' or abort 'Failed to build buildvm-android tool'
+    # Reconfigure Android build one more time now that we have the tools built
+    ENV['SKIP_NATIVE'] = '1'
     system './cmake_gcc.sh' or abort 'Failed to reconfigure Urho3D library for Android build'
     PLATFORM_PREFIX = 'android-'
     TEST = ''
-    ENV['SKIP_NATIVE'] = '1'
   else
     PLATFORM_PREFIX = ''
     TEST = '&& make test'
   end
   system "cd #{PLATFORM_PREFIX}Build && make #{TEST}" or abort 'Failed to build or test Urho3D library'
+  # Create a new project on the fly that uses newly built Urho3D library
   scaffolding "#{PLATFORM_PREFIX}Build/generated/externallib"
   system "URHO3D_HOME=`pwd`; export URHO3D_HOME && cd #{PLATFORM_PREFIX}Build/generated/externallib && echo '\nUsing Urho3D as external library in external project' && ./cmake_gcc.sh -DENABLE_64BIT=$ENABLE_64BIT -DENABLE_LUA=1 -DENABLE_TESTING=1 -DCMAKE_BUILD_TYPE=Debug && cd #{PLATFORM_PREFIX}Build && make #{TEST}" or abort 'Failed to configure/build/test temporary project using Urho3D as external library' 
 end