فهرست منبع

Test multiple Xcode (7.3 & 8)

kishikawa katsumi 9 سال پیش
والد
کامیت
cf85da7d2c
2فایلهای تغییر یافته به همراه92 افزوده شده و 35 حذف شده
  1. 26 9
      .travis.yml
  2. 66 26
      Lib/Rakefile

+ 26 - 9
.travis.yml

@@ -1,6 +1,4 @@
 language: objective-c
 language: objective-c
-osx_image: xcode8
-rvm: 2.3.1
 cache:
 cache:
   directories:
   directories:
     - Lib/vendor/bundle
     - Lib/vendor/bundle
@@ -23,14 +21,33 @@ branches:
   only:
   only:
     - master
     - master
     - swift-2.3
     - swift-2.3
+matrix:
+  include:
+    - osx_image: xcode8
+      env: ACTION=build
+    - osx_image: xcode8
+      env: ACTION='build:carthage'
+    - osx_image: xcode8
+      env: ACTION='test:iphonesimulator:debug coverage:coveralls'
+    - osx_image: xcode8
+      env: ACTION='test:iphonesimulator:release coverage:coveralls'
+    - osx_image: xcode8
+      env: ACTION='test:appletvsimulator coverage:coveralls'
+    - osx_image: xcode8
+      env: ACTION='test:macosx coverage:coveralls'
+    - osx_image: xcode7.3
+      env: ACTION=build
+    - osx_image: xcode7.3
+      env: ACTION='build:carthage'
+    - osx_image: xcode7.3
+      env: ACTION='test:iphonesimulator:debug coverage:coveralls'
+    - osx_image: xcode7.3
+      env: ACTION='test:iphonesimulator:release coverage:coveralls'
+    - osx_image: xcode7.3
+      env: ACTION='test:appletvsimulator coverage:coveralls'
+    - osx_image: xcode7.3
+      env: ACTION='test:macosx coverage:coveralls'
 env:
 env:
-  matrix:
-    - ACTION=build
-    - ACTION='build:carthage'
-    - ACTION='test:iphonesimulator:debug coverage:coveralls'
-    - ACTION='test:iphonesimulator:release coverage:coveralls'
-    - ACTION='test:appletvsimulator coverage:coveralls'
-    - ACTION='test:macosx coverage:coveralls'
   global:
   global:
     - LANG=en_US.UTF-8
     - LANG=en_US.UTF-8
     - LC_ALL=en_US.UTF-8
     - LC_ALL=en_US.UTF-8

+ 66 - 26
Lib/Rakefile

@@ -1,25 +1,55 @@
 require 'xcjobs'
 require 'xcjobs'
 
 
-def destinations(platform: 'iphonesimulator')
-  if platform == 'iphonesimulator'
-    [ 'name=iPhone 5,OS=10.0',
-      'name=iPhone 5s,OS=10.0',
-      'name=iPhone 6,OS=10.0',
-      'name=iPhone 6s Plus,OS=10.0',
-      'name=iPhone SE,OS=10.0',
-      'name=iPad Air 2,OS=10.0',
-      'name=iPad Pro (9.7 inch),OS=10.0',
-      'name=iPad Pro (12.9 inch),OS=10.0'
-    ]
-  elsif platform == 'watchsimulator'
-    [ 'name=Apple Watch - 38mm,OS=3.0',
-      'name=Apple Watch - 42mm,OS=3.0'
-    ]
-  elsif platform == 'appletvsimulator'
-    [ 'name=Apple TV 1080p,OS=10.0'
-    ]
-  else
-    []
+xcode_version = `xcodebuild -version`.split("\n").first.scan(/\d+/).join('.')
+
+if xcode_version == '8.0'
+  def destinations(platform: 'iphonesimulator')
+    if platform == 'iphonesimulator'
+      [ 'name=iPhone 5,OS=10.0',
+        'name=iPhone 5s,OS=10.0',
+        'name=iPhone 6,OS=10.0',
+        'name=iPhone 6s Plus,OS=10.0',
+        'name=iPhone SE,OS=10.0',
+        'name=iPad Air 2,OS=10.0',
+        'name=iPad Pro (9.7 inch),OS=10.0',
+        'name=iPad Pro (12.9 inch),OS=10.0'
+      ]
+    elsif platform == 'watchsimulator'
+      [ 'name=Apple Watch - 38mm,OS=3.0',
+        'name=Apple Watch - 42mm,OS=3.0'
+      ]
+    elsif platform == 'appletvsimulator'
+      [ 'name=Apple TV 1080p,OS=10.0'
+      ]
+    else
+      []
+    end
+  end
+else
+  def destinations(platform: 'iphonesimulator')
+    if platform == 'iphonesimulator'
+      [ 'name=iPad 2,OS=8.1',
+        'name=iPad Air,OS=8.1',
+        'name=iPhone 4s,OS=8.1',
+        'name=iPhone 5,OS=8.1',
+        'name=iPhone 5s,OS=8.1',
+        'name=iPhone 6,OS=8.1',
+        'name=iPhone 6 Plus,OS=8.1',
+        'name=iPhone 6,OS=9.0',
+        'name=iPhone 6 Plus,OS=9.0',
+        'name=iPhone 6,OS=9.1',
+        'name=iPhone 6 Plus,OS=9.1'
+      ]
+    elsif platform == 'watchsimulator'
+      [ 'name=Apple Watch - 38mm,OS=2.0',
+        'name=Apple Watch - 42mm,OS=2.0'
+      ]
+    elsif platform == 'appletvsimulator'
+      [ 'name=Apple TV 1080p,OS=9.0'
+      ]
+    else
+      []
+    end
   end
   end
 end
 end
 
 
@@ -45,12 +75,22 @@ namespace :build do
       t.project = 'KeychainAccess'
       t.project = 'KeychainAccess'
       t.scheme = 'KeychainAccess'
       t.scheme = 'KeychainAccess'
       t.sdk = platform
       t.sdk = platform
-      if platform == 'iphonesimulator'
-        t.add_destination('name=iPhone 6,OS=10.0')
-      elsif platform == 'watchsimulator'
-        t.add_destination('name=Apple Watch - 42mm,OS=3.0')
-      elsif platform == 'appletvsimulator'
-        t.add_destination('name=Apple TV 1080p,OS=10.0')
+      if xcode_version == '8.0'
+        if platform == 'iphonesimulator'
+          t.add_destination('name=iPhone 6,OS=10.0')
+        elsif platform == 'watchsimulator'
+          t.add_destination('name=Apple Watch - 42mm,OS=3.0')
+        elsif platform == 'appletvsimulator'
+          t.add_destination('name=Apple TV 1080p,OS=10.0')
+        end
+      else
+        if platform == 'iphonesimulator'
+          t.add_destination('name=iPhone 6,OS=9.1')
+        elsif platform == 'watchsimulator'
+          t.add_destination('name=Apple Watch - 42mm,OS=2.0')
+        elsif platform == 'appletvsimulator'
+          t.add_destination('name=Apple TV 1080p,OS=9.0')
+        end
       end
       end
       t.configuration = configuration
       t.configuration = configuration
       t.build_dir = 'build'
       t.build_dir = 'build'