Ver código fonte

More CI updates for Xcode 16 minimum (#14655)

Co-authored-by: Nick Cooke <nickcooke@google.com>
Paul Beusterien 11 meses atrás
pai
commit
0b6091c6ca

+ 4 - 4
.github/workflows/analytics.yml

@@ -24,12 +24,12 @@ jobs:
     strategy:
       matrix:
         target: [ios, tvos, macos]
-        os: [macos-14, macos-13]
+        os: [macos-14, macos-15]
         include:
           - os: macos-14
-            xcode: Xcode_15.3
-          - os: macos-13
-            xcode: Xcode_15.2
+            xcode: Xcode_16.2
+          - os: macos-15
+            xcode: Xcode_16.3
     runs-on: ${{ matrix.os }}
 
     steps:

+ 5 - 9
.github/workflows/appdistribution.yml

@@ -23,12 +23,10 @@ jobs:
     strategy:
       matrix:
         include:
-          - os: macos-13
-            xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_15.4
           - os: macos-15
             xcode: Xcode_16.2
+          - os: macos-16
+            xcode: Xcode_16.3
     runs-on: ${{ matrix.os }}
     steps:
     - uses: actions/checkout@v4
@@ -72,12 +70,10 @@ jobs:
     strategy:
       matrix:
         include:
-          - os: macos-13
-            xcode: Xcode_15.2
           - os: macos-14
-            xcode: Xcode_15.4
-          - os: macos-15
             xcode: Xcode_16.2
+          - os: macos-15
+            xcode: Xcode_16.3
     runs-on: ${{ matrix.os }}
     steps:
     - uses: actions/checkout@v4
@@ -113,7 +109,7 @@ jobs:
   appdistribution-cron-only:
     if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
-    runs-on: macos-14
+    runs-on: macos-15
     strategy:
       matrix:
         target: [ios]

+ 2 - 2
.github/workflows/archiving.yml

@@ -20,7 +20,7 @@ jobs:
     # Don't run on private repo.
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule')
 
-    runs-on: macos-14
+    runs-on: macos-15
     strategy:
       matrix:
         # These need to be on a single line or else the formatting won't validate.
@@ -42,7 +42,7 @@ jobs:
     # Don't run on private repo.
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule')
 
-    runs-on: macos-14
+    runs-on: macos-15
     strategy:
       matrix:
         target: [ios, tvos, macos]

+ 11 - 43
.github/workflows/auth.yml

@@ -30,37 +30,8 @@ jobs:
       matrix:
         podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec]
         target: [ios, tvos, macos --skip-tests, watchos]
-        os: [macos-14]
-        xcode: [Xcode_15.2]
-    runs-on: ${{ matrix.os }}
-    steps:
-    - uses: actions/checkout@v4
-    - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Configure test keychain
-      run: scripts/configure_test_keychain.sh
-    - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
-    - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
-      with:
-        timeout_minutes: 120
-        max_attempts: 3
-        retry_on: error
-        retry_wait_seconds: 120
-        command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }}
-
-  # TODO: Fix warnings on Xcode 16 and move into matrix above.
-  pod-lib-lint-xc16:
-    # Don't run on private repo unless it is a PR.
-    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
-
-    strategy:
-      matrix:
-        podspec: [FirebaseAuthInterop.podspec, FirebaseAuth.podspec]
-        target: [ios, tvos, macos --skip-tests --allow-warnings, watchos]
         os: [macos-15]
-        xcode: [Xcode_16.2]
+        xcode: [Xcode_16.3]
     runs-on: ${{ matrix.os }}
     steps:
     - uses: actions/checkout@v4
@@ -77,12 +48,12 @@ jobs:
         max_attempts: 3
         retry_on: error
         retry_wait_seconds: 120
-        command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }} --allow-warnings
+        command: scripts/pod_lib_lint.rb ${{ matrix.podspec }} --platforms=${{ matrix.target }} ${{ matrix.tests }}
 
   spm-package-resolved:
     env:
       FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
-    runs-on: macos-14
+    runs-on: macos-15
     outputs:
       cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
     steps:
@@ -109,29 +80,26 @@ jobs:
     strategy:
       matrix:
         include:
-          - os: macos-13
-            xcode: Xcode_15.2
-            target: iOS spm
           - os: macos-14
-            xcode: Xcode_15.4
+            xcode: Xcode_16.2
             target: iOS spm
           - os: macos-15
-            xcode: Xcode_16.2
+            xcode: Xcode_16.3
             target: iOS spm
           - os: macos-15
-            xcode: Xcode_16.2
+            xcode: Xcode_16.3
             target: tvOS spm
           - os: macos-15
-            xcode: Xcode_16.2
+            xcode: Xcode_16.3
             target: macOS spmbuildonly
           - os: macos-15
-            xcode: Xcode_16.2
+            xcode: Xcode_16.3
             target: watchOS spm
           - os: macos-15
-            xcode: Xcode_16.2
+            xcode: Xcode_16.3
             target: catalyst spm
           - os: macos-15
-            xcode: Xcode_16.2
+            xcode: Xcode_16.3
             target: visionOS spm
     runs-on: ${{ matrix.os }}
     steps:
@@ -272,7 +240,7 @@ jobs:
     # Don't run on private repo.
     if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
-    runs-on: macos-14
+    runs-on: macos-15
     strategy:
       matrix:
         # The macos and tvos tests can hang, and watchOS doesn't have tests.

+ 3 - 0
.github/workflows/client_app.yml

@@ -27,6 +27,7 @@ jobs:
   client-app-spm:
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     strategy:
+      # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners.
       matrix:
         #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst
         platform: [iOS]
@@ -49,6 +50,7 @@ jobs:
         FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
         FIREBASE_SOURCE_FIRESTORE: 1
       strategy:
+        # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners.
         matrix:
           #TODO(ncooke3): Add multi-platform support: tvOS, macOS, catalyst
           platform: [iOS]
@@ -69,6 +71,7 @@ jobs:
     # Don't run on private repo unless it is a PR.
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     strategy:
+      # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners.
       matrix:
         scheme: [ClientApp-CocoaPods]
         os: [macos-14, macos-15]

+ 2 - 3
.github/workflows/cocoapods-integration.yml

@@ -18,10 +18,9 @@ concurrency:
 jobs:
   tests:
     # Don't run on private repo unless it is a PR.
-    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
-        || github.event_name == 'workflow_dispatch'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
 
-    runs-on: macos-14
+    runs-on: macos-15
     steps:
     - uses: actions/checkout@v4
     - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126

+ 2 - 2
.github/workflows/combine.yml

@@ -49,7 +49,7 @@ jobs:
   xcodebuild:
     # Don't run on private repo unless it is a PR.
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
-    runs-on: macos-14
+    runs-on: macos-15
 
     strategy:
       matrix:
@@ -77,7 +77,7 @@ jobs:
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-    runs-on: macos-14
+    runs-on: macos-15
     steps:
     - uses: actions/checkout@v4
     - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126

+ 8 - 1
.github/workflows/core.yml

@@ -28,6 +28,9 @@ jobs:
             xcode: Xcode_16.2
           - os: macos-15
             xcode: Xcode_16.2
+          # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners.
+#          - os: macos-15
+#            xcode: Xcode_16.3
     runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
@@ -42,7 +45,7 @@ jobs:
   spm-package-resolved:
     env:
       FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
-    runs-on: macos-14
+    runs-on: macos-15
     outputs:
       cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
     steps:
@@ -70,6 +73,7 @@ jobs:
     needs: [spm-package-resolved]
     strategy:
       matrix:
+        # TODO: Add Xcode matrix when Xcode 16 is ubiquitous on CI runners.
         include:
           - os: macos-14
             xcode: Xcode_16.2
@@ -77,6 +81,9 @@ jobs:
           - os: macos-15
             xcode: Xcode_16.2
             target: iOS
+          - os: macos-15
+            xcode: Xcode_16.2
+            target: iOS
           - os: macos-15
             xcode: Xcode_16.2
             target: tvOS

+ 4 - 1
.github/workflows/core_extension.yml

@@ -26,6 +26,9 @@ jobs:
             xcode: Xcode_16.2
           - os: macos-15
             xcode: Xcode_16.2
+          # TODO: Enable when Xcode 16 is ubiquitous on CI runners.
+#          - os: macos-15
+#            xcode: Xcode_16.3
     runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
@@ -40,7 +43,7 @@ jobs:
   core-internal-cron-only:
     # Don't run on private repo.
     if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
-    runs-on: macos-14
+    runs-on: macos-15
     strategy:
       matrix:
         target: [ios, tvos, macos]

+ 1 - 2
FirebaseAppDistributionInternal/Sources/ApiService.swift

@@ -17,8 +17,7 @@ import FirebaseInstallations
 import Foundation
 import UIKit
 
-// Avoids exposing internal APIs to Swift users
-@_implementationOnly import FirebaseCoreInternal
+internal import FirebaseCoreInternal
 
 enum Strings {
   static let errorDomain = "com.firebase.appdistribution.api"

+ 1 - 1
FirebaseAppDistributionInternal/Sources/Internal/Logger.swift

@@ -15,7 +15,7 @@
 
 import Foundation
 
-@_implementationOnly import FirebaseCoreExtension
+internal import FirebaseCoreExtension
 
 ///
 /// Logger is responsible for printing console logs

+ 3 - 3
FirebaseAuth/Sources/Swift/Auth/Auth.swift

@@ -19,10 +19,10 @@ import FirebaseAuthInterop
 import FirebaseCore
 import FirebaseCoreExtension
 #if COCOAPODS
-  @_implementationOnly import GoogleUtilities
+  internal import GoogleUtilities
 #else
-  @_implementationOnly import GoogleUtilities_AppDelegateSwizzler
-  @_implementationOnly import GoogleUtilities_Environment
+  internal import GoogleUtilities_AppDelegateSwizzler
+  internal import GoogleUtilities_Environment
 #endif
 
 #if os(iOS) || os(tvOS) || targetEnvironment(macCatalyst)

+ 2 - 2
FirebaseAuth/Sources/Swift/MultiFactor/TOTP/TOTPSecret.swift

@@ -14,9 +14,9 @@
 
 import Foundation
 #if COCOAPODS
-  @_implementationOnly import GoogleUtilities
+  internal import GoogleUtilities
 #else
-  @_implementationOnly import GoogleUtilities_Environment
+  internal import GoogleUtilities_Environment
 #endif
 
 #if os(iOS)

+ 2 - 2
FirebaseAuth/Sources/Swift/SystemService/AuthAPNSTokenManager.swift

@@ -17,9 +17,9 @@
   import UIKit
 
   #if COCOAPODS
-    @_implementationOnly import GoogleUtilities
+    internal import GoogleUtilities
   #else
-    @_implementationOnly import GoogleUtilities_Environment
+    internal import GoogleUtilities_Environment
   #endif // COCOAPODS
 
   // Protocol to help with unit tests.

+ 2 - 2
FirebaseAuth/Sources/Swift/Utilities/AuthDefaultUIDelegate.swift

@@ -17,9 +17,9 @@
   import Foundation
   import UIKit
   #if COCOAPODS
-    @_implementationOnly import GoogleUtilities
+    internal import GoogleUtilities
   #else
-    @_implementationOnly import GoogleUtilities_Environment
+    internal import GoogleUtilities_Environment
   #endif
 
   /// Class responsible for providing a default AuthUIDelegate.

+ 1 - 1
IntegrationTesting/CocoapodsIntegrationTest/scripts/build_with_environment.sh

@@ -27,7 +27,7 @@ function runXcodebuild() {
     -workspace 'CocoapodsIntegrationTest.xcworkspace'
     -scheme 'CocoapodsIntegrationTest'
     -sdk 'iphonesimulator'
-    -destination 'platform=iOS Simulator,name=iPhone 15'
+    -destination 'platform=iOS Simulator,name=iPhone 16'
     CODE_SIGNING_REQUIRED=NO
     clean
     build