Pārlūkot izejas kodu

For Travis CI - new commit msg pattern to trigger 64-bit only build.

Yao Wei Tjong 姚伟忠 10 gadi atpakaļ
vecāks
revīzija
295c4c6a05
3 mainītis faili ar 11 papildinājumiem un 6 dzēšanām
  1. 1 1
      .travis.yml
  2. 7 3
      CMake/Modules/Urho3D-CMake-common.cmake
  3. 3 2
      Rakefile

+ 1 - 1
.travis.yml

@@ -335,7 +335,7 @@ before_script:
   - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
   - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
   - if [ $XCODE ] && ([ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
-  - if [ $IOS ] && echo $COMMIT_MESSAGE |grep -cq '\[ccache clear\]'; then export IOS_HALF_ARCH_HACK=1; fi
+  - if [ $XCODE ] && echo $COMMIT_MESSAGE |egrep -cq '\[(ccache clear|xcode 64bit only)\]'; then export XCODE_64BIT_ONLY=1; fi
   - travis_retry brew update >/dev/null
   - which cmake >/dev/null 2>&1 || cmake=cmake
   - if [ $PACKAGE_UPLOAD ]; then doxygen='doxygen graphviz'; fi

+ 7 - 3
CMake/Modules/Urho3D-CMake-common.cmake

@@ -530,8 +530,8 @@ if (APPLE)
         # IOS-specific setup
         add_definitions (-DIOS)
         if (URHO3D_64BIT)
-            if (DEFINED ENV{IOS_HALF_ARCH_HACK})                # This environment variable is set when ccache is just being cleared in Travis CI VM
-                set (CMAKE_OSX_ARCHITECTURES "arm64 x86_64")    # This is a hack used in Travis-CI iOS build only (it only builds 2 out of 4 archs)
+            if (DEFINED ENV{XCODE_64BIT_ONLY})                  # This environment variable is set automatically when ccache is just being cleared in Travis CI VM
+                set (CMAKE_OSX_ARCHITECTURES "arm64 x86_64")    # This is a hack to temporarily only build 64-bit archs to reduce overall build time
             else ()
                 set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD))
             endif ()
@@ -543,7 +543,11 @@ if (APPLE)
         if (XCODE)
             # OSX-specific setup
             if (URHO3D_64BIT)
-                set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD_32_64_BIT))
+                if (DEFINED ENV{XCODE_64BIT_ONLY})
+                    set (CMAKE_OSX_ARCHITECTURES x86_64)        # This is a hack
+                else ()
+                    set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD_32_64_BIT))
+                endif ()
             else ()
                 set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD_32_BIT))
             endif ()

+ 3 - 2
Rakefile

@@ -263,7 +263,7 @@ task :ci do
     next
   end
   system "bash -c 'rake make'" or abort 'Failed to build Urho3D library'
-  if ENV['URHO3D_TESTING'] && !timeup
+  if !timeup && ENV['URHO3D_TESTING']
     # Multi-config CMake generators use different test target name than single-config ones for no good reason
     test = "rake make target=#{ENV['OS'] || ENV['XCODE'] ? 'RUN_TESTS' : 'test'}"
     system "bash -c '#{test}'" or abort 'Failed to test Urho3D library'
@@ -271,7 +271,8 @@ task :ci do
   else
     test = ''
   end
-  unless ENV['CI'] && (ENV['IOS'] || ENV['WEB']) && ENV['PACKAGE_UPLOAD'] || timeup  # Skip scaffolding test when packaging for iOS and Web platform
+  # Skip scaffolding test when time up or packaging for iOS and Web platform
+  unless timeup || ENV['XCODE_64BIT_ONLY'] || ENV['CI'] && (ENV['IOS'] || ENV['WEB']) && ENV['PACKAGE_UPLOAD']
     # Staged-install Urho3D SDK when on Travis-CI; normal install when on AppVeyor
     ENV['DESTDIR'] = ENV['HOME'] || Dir.home unless ENV['APPVEYOR']
     puts "Installing Urho3D SDK to #{ENV['DESTDIR'] ? "#{ENV['DESTDIR']}/usr/local" : 'default system-wide location'}..."; $stdout.flush