Browse Source

Merge pull request #2455 from onevcat/upgrade-ci

Upgrade CI Settings
Wei Wang 1 month ago
parent
commit
ecfe921185
4 changed files with 115 additions and 51 deletions
  1. 55 12
      .github/workflows/build.yaml
  2. 29 10
      .github/workflows/test.yaml
  3. 29 27
      Gemfile.lock
  4. 2 2
      fastlane/Fastfile

+ 55 - 12
.github/workflows/build.yaml

@@ -17,21 +17,62 @@ concurrency:
 
 jobs:
   build-framework:
+    name: build (Xcode ${{ matrix.xcode }}, ${{ matrix.label }})
     runs-on: self-hosted
     strategy:
       matrix:
-        destination: [
-          'macOS', 
-          'iOS Simulator,name=iPhone 15,OS=17.5', 
-          'tvOS Simulator,name=Apple TV,OS=17.5', 
-          'watchOS Simulator,name=Apple Watch Series 9 (41mm),OS=10.5'
-        ]
-        xcode: [
-          '16.0',
-          '16.1',
-          '16.2',
-          '16.3',
-        ]
+        include:
+          - xcode: '16.2'
+            destination: 'macOS'
+            label: 'macOS'
+          - xcode: '16.2'
+            destination: 'iOS Simulator,name=iPhone 16,OS=18.2'
+            label: 'iOS 18.2'
+          - xcode: '16.2'
+            destination: 'tvOS Simulator,name=Apple TV 4K (3rd generation),OS=18.2'
+            label: 'tvOS 18.2'
+          - xcode: '16.2'
+            destination: 'watchOS Simulator,name=Apple Watch Series 10 (42mm),OS=11.2'
+            label: 'watchOS 11.2'
+
+          - xcode: '16.3'
+            destination: 'macOS'
+            label: 'macOS'
+          - xcode: '16.3'
+            destination: 'iOS Simulator,name=iPhone 16,OS=18.4'
+            label: 'iOS 18.4'
+          - xcode: '16.3'
+            destination: 'tvOS Simulator,name=Apple TV 4K (3rd generation),OS=18.4'
+            label: 'tvOS 18.4'
+          - xcode: '16.3'
+            destination: 'watchOS Simulator,name=Apple Watch Series 10 (42mm),OS=11.4'
+            label: 'watchOS 11.4'
+
+          - xcode: '26.0.1'
+            destination: 'macOS'
+            label: 'macOS'
+          - xcode: '26.0.1'
+            destination: 'iOS Simulator,name=iPhone 17,OS=26.0.1'
+            label: 'iOS 26.0.1'
+          - xcode: '26.0.1'
+            destination: 'tvOS Simulator,name=Apple TV 4K (3rd generation),OS=26.0'
+            label: 'tvOS 26.0'
+          - xcode: '26.0.1'
+            destination: 'watchOS Simulator,name=Apple Watch Series 11 (42mm),OS=26.0'
+            label: 'watchOS 26.0'
+
+          - xcode: '26.1.1'
+            destination: 'macOS'
+            label: 'macOS'
+          - xcode: '26.1.1'
+            destination: 'iOS Simulator,name=iPhone 17,OS=26.1'
+            label: 'iOS 26.1'
+          - xcode: '26.1.1'
+            destination: 'tvOS Simulator,name=Apple TV 4K (3rd generation),OS=26.1'
+            label: 'tvOS 26.1'
+          - xcode: '26.1.1'
+            destination: 'watchOS Simulator,name=Apple Watch Series 11 (42mm),OS=26.1'
+            label: 'watchOS 26.1'
     steps:
       - uses: actions/checkout@v4
       - name: Install Gems
@@ -40,4 +81,6 @@ jobs:
         env:
           DESTINATION: platform=${{ matrix.destination }}
           XCODE_VERSION: ${{ matrix.xcode }}
+          FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: '60'
+          FASTLANE_XCODEBUILD_SETTINGS_RETRIES: '4'
         run: bundle exec fastlane build_ci

+ 29 - 10
.github/workflows/test.yaml

@@ -17,19 +17,36 @@ concurrency:
 
 jobs:
   run-tests:
+    name: test (Xcode ${{ matrix.xcode }}, ${{ matrix.label }})
     runs-on: self-hosted
     strategy:
       matrix:
-        destination: [
-          'macOS', 
-          'iOS Simulator,name=iPhone 16,OS=18.5', 
-          'tvOS Simulator,name=Apple TV,OS=18.5', 
-          'watchOS Simulator,name=Apple Watch Series 10 (42mm),OS=11.5'
-        ]
-        xcode: [
-          '16.4',
-          '26.0.1',
-        ]
+        include:
+          - xcode: '16.4'
+            destination: 'macOS'
+            label: 'macOS'
+          - xcode: '16.4'
+            destination: 'iOS Simulator,name=iPhone 16,OS=18.5'
+            label: 'iOS 18.5'
+          - xcode: '16.4'
+            destination: 'tvOS Simulator,name=Apple TV 4K (3rd generation),OS=18.5'
+            label: 'tvOS 18.5'
+          - xcode: '16.4'
+            destination: 'watchOS Simulator,name=Apple Watch Series 10 (42mm),OS=11.5'
+            label: 'watchOS 11.5'
+
+          - xcode: '26.2'
+            destination: 'macOS'
+            label: 'macOS'
+          - xcode: '26.2'
+            destination: 'iOS Simulator,name=iPhone 17,OS=26.2'
+            label: 'iOS 26.2'
+          - xcode: '26.2'
+            destination: 'tvOS Simulator,name=Apple TV 4K (3rd generation),OS=26.2'
+            label: 'tvOS 26.2'
+          - xcode: '26.2'
+            destination: 'watchOS Simulator,name=Apple Watch Series 11 (42mm),OS=26.2'
+            label: 'watchOS 26.2'
     steps:
       - uses: actions/checkout@v4
       - name: Install Gems
@@ -38,4 +55,6 @@ jobs:
         env:
           DESTINATION: platform=${{ matrix.destination }}
           XCODE_VERSION: ${{ matrix.xcode }}
+          FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: '60'
+          FASTLANE_XCODEBUILD_SETTINGS_RETRIES: '4'
         run: bundle exec fastlane test_ci

+ 29 - 27
Gemfile.lock

@@ -1,11 +1,9 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.7)
-      base64
-      nkf
-      rexml
-    activesupport (7.2.2.2)
+    CFPropertyList (3.0.8)
+    abbrev (0.1.2)
+    activesupport (7.2.3)
       base64
       benchmark (>= 0.3)
       bigdecimal
@@ -17,16 +15,16 @@ GEM
       minitest (>= 5.1)
       securerandom (>= 0.3)
       tzinfo (~> 2.0, >= 2.0.5)
-    addressable (2.8.7)
-      public_suffix (>= 2.0.2, < 7.0)
+    addressable (2.8.8)
+      public_suffix (>= 2.0.2, < 8.0)
     algoliasearch (1.27.5)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     artifactory (3.0.17)
     atomos (0.1.3)
     aws-eventstream (1.4.0)
-    aws-partitions (1.1168.0)
-    aws-sdk-core (3.233.0)
+    aws-partitions (1.1195.0)
+    aws-sdk-core (3.240.0)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.992.0)
       aws-sigv4 (~> 1.9)
@@ -34,19 +32,19 @@ GEM
       bigdecimal
       jmespath (~> 1, >= 1.6.1)
       logger
-    aws-sdk-kms (1.113.0)
-      aws-sdk-core (~> 3, >= 3.231.0)
+    aws-sdk-kms (1.118.0)
+      aws-sdk-core (~> 3, >= 3.239.1)
       aws-sigv4 (~> 1.5)
-    aws-sdk-s3 (1.199.1)
-      aws-sdk-core (~> 3, >= 3.231.0)
+    aws-sdk-s3 (1.208.0)
+      aws-sdk-core (~> 3, >= 3.234.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.5)
     aws-sigv4 (1.12.1)
       aws-eventstream (~> 1, >= 1.0.2)
     babosa (1.0.4)
     base64 (0.3.0)
-    benchmark (0.4.1)
-    bigdecimal (3.2.3)
+    benchmark (0.5.0)
+    bigdecimal (4.0.0)
     claide (1.1.0)
     cocoapods (1.16.2)
       addressable (~> 2.8)
@@ -89,8 +87,9 @@ GEM
     colored2 (3.1.2)
     commander (4.6.0)
       highline (~> 2.0.0)
-    concurrent-ruby (1.3.5)
-    connection_pool (2.5.4)
+    concurrent-ruby (1.3.6)
+    connection_pool (3.0.2)
+    csv (3.3.5)
     declarative (0.0.20)
     digest-crc (0.7.0)
       rake (>= 12.0.0, < 14.0.0)
@@ -99,8 +98,9 @@ GEM
     drb (2.2.3)
     emoji_regex (3.2.3)
     escape (0.0.4)
-    ethon (0.17.0)
+    ethon (0.18.0)
       ffi (>= 1.15.0)
+      logger
     excon (0.112.0)
     faraday (1.10.4)
       faraday-em_http (~> 1.0)
@@ -114,9 +114,9 @@ GEM
       faraday-rack (~> 1.0)
       faraday-retry (~> 1.0)
       ruby2_keywords (>= 0.0.4)
-    faraday-cookie_jar (0.0.7)
+    faraday-cookie_jar (0.0.8)
       faraday (>= 0.8.0)
-      http-cookie (~> 1.0.0)
+      http-cookie (>= 1.0.0)
     faraday-em_http (1.0.0)
     faraday-em_synchrony (1.0.1)
     faraday-excon (1.1.0)
@@ -131,8 +131,9 @@ GEM
     faraday_middleware (1.2.1)
       faraday (~> 1.0)
     fastimage (2.4.0)
-    fastlane (2.228.0)
+    fastlane (2.229.0)
       CFPropertyList (>= 2.3, < 4.0.0)
+      abbrev (~> 0.1.2)
       addressable (>= 2.8, < 3.0.0)
       artifactory (~> 3.0)
       aws-sdk-s3 (~> 1.0)
@@ -140,6 +141,7 @@ GEM
       bundler (>= 1.12.0, < 3.0.0)
       colored (~> 1.2)
       commander (~> 4.6)
+      csv (~> 3.3)
       dotenv (>= 2.1.1, < 3.0.0)
       emoji_regex (>= 0.1, < 4.0)
       excon (>= 0.71.0, < 1.0.0)
@@ -159,6 +161,7 @@ GEM
       jwt (>= 2.1.0, < 3)
       mini_magick (>= 4.9.4, < 5.0.0)
       multipart-post (>= 2.0.0, < 3.0.0)
+      mutex_m (~> 0.3.0)
       naturally (~> 2.2)
       optparse (>= 0.1.1, < 1.0.0)
       plist (>= 3.1.0, < 4.0.0)
@@ -223,27 +226,26 @@ GEM
     i18n (1.14.7)
       concurrent-ruby (~> 1.0)
     jmespath (1.6.2)
-    json (2.15.0)
+    json (2.18.0)
     jwt (2.10.2)
       base64
     logger (1.7.0)
     mini_magick (4.13.2)
     mini_mime (1.1.5)
-    minitest (5.25.5)
+    minitest (5.27.0)
     molinillo (0.8.0)
-    multi_json (1.17.0)
+    multi_json (1.18.0)
     multipart-post (2.4.1)
     mutex_m (0.3.0)
     nanaimo (0.4.0)
     nap (1.1.0)
     naturally (2.3.0)
     netrc (0.11.0)
-    nkf (0.2.0)
-    optparse (0.6.0)
+    optparse (0.8.1)
     os (1.1.4)
     plist (3.7.2)
     public_suffix (4.0.7)
-    rake (13.3.0)
+    rake (13.3.1)
     representable (3.2.0)
       declarative (< 0.1.0)
       trailblazer-option (>= 0.1.1, < 0.2.0)

+ 2 - 2
fastlane/Fastfile

@@ -93,7 +93,7 @@ platform :ios do
   lane :xcframework do |options|
     version = options[:version]
     swift_version = options[:swift_version] || "5.0"
-    xcode_version = options[:xcode_version] || "26.1.1"
+    xcode_version = options[:xcode_version] || "26.2.0"
 
     xcodes(version: xcode_version, select_for_current_build_only: true)
     FileUtils.rm_rf '../build'
@@ -166,7 +166,7 @@ platform :ios do
   end
 
   before_all do |lane|
-    xcode_version = ENV["XCODE_VERSION"] || "26.1.1"
+    xcode_version = ENV["XCODE_VERSION"] || "26.2.0"
     xcodes(version: xcode_version, select_for_current_build_only: true)
   end