Explorar o código

[Infra] Update zip workflow to use macOS 15 for Xcode 16 jobs (#14050)

Andrew Heard hai 1 ano
pai
achega
9a5b90845c
Modificáronse 2 ficheiros con 57 adicións e 53 borrados
  1. 44 52
      .github/workflows/zip.yml
  2. 13 1
      scripts/zip_quickstart_test.sh

+ 44 - 52
.github/workflows/zip.yml

@@ -111,14 +111,13 @@ jobs:
       SDK: "ABTesting"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -134,7 +133,7 @@ jobs:
         find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
     - uses: actions/checkout@v4
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup quickstart
       env:
         LEGACY: true
@@ -173,11 +172,11 @@ jobs:
       SDK:  "Authentication"
     strategy:
       matrix:
-        os: [macos-14]
+        os: [macos-15]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
         include:
-          - os: macos-14
-            xcode: Xcode_16
+          - os: macos-15
+            xcode: Xcode_16.1
     runs-on: ${{ matrix.os }}
     steps:
     - uses: actions/checkout@v4
@@ -225,14 +224,13 @@ jobs:
       SDK: "Config"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -247,7 +245,7 @@ jobs:
         mkdir -p "${HOME}"/ios_frameworks/
         find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup Swift Quickstart
 
       run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
@@ -277,14 +275,13 @@ jobs:
       SDK: "Crashlytics"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -300,7 +297,7 @@ jobs:
         find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
     - uses: actions/checkout@v4
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup quickstart
       env:
         LEGACY: true
@@ -404,14 +401,13 @@ jobs:
       SDK: "DynamicLinks"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -430,7 +426,7 @@ jobs:
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseDynamicLinks/* \
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup Swift Quickstart
       run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
     - name: Update Environment Variable For DynamicLinks
@@ -464,14 +460,13 @@ jobs:
       SDK: "Firestore"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -493,7 +488,7 @@ jobs:
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Install Secret GoogleService-Info.plist
       run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
         quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
@@ -505,7 +500,7 @@ jobs:
     - uses: actions/upload-artifact@v4
       if: ${{ failure() }}
       with:
-        name: quickstart_artifacts_firestore_${{ matrix.artifact }}_${{ matrix.os }}
+        name: quickstart_artifacts_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }}
         path: quickstart_artifacts_firestore.zip
 
   check_framework_firestore_symbols:
@@ -549,14 +544,13 @@ jobs:
       SDK: "InAppMessaging"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -577,7 +571,7 @@ jobs:
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseInAppMessaging/* \
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup swift quickstart
       run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
     - name: Install Secret GoogleService-Info.plist
@@ -606,14 +600,13 @@ jobs:
       SDK: "Messaging"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -633,7 +626,7 @@ jobs:
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseMessaging/* \
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup swift quickstart
       run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
     - name: Install Secret GoogleService-Info.plist
@@ -662,14 +655,13 @@ jobs:
       SDK: "Storage"
     strategy:
       matrix:
-        os: [macos-13, macos-14]
         artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
-        include:
+        build-env:
           - os: macos-13
             xcode: Xcode_15.2
-          - os: macos-14
-            xcode: Xcode_16
-    runs-on: ${{ matrix.os }}
+          - os: macos-15
+            xcode: Xcode_16.1
+    runs-on: ${{ matrix.build-env.os }}
     steps:
     - uses: actions/checkout@v4
     - name: Get framework dir
@@ -692,7 +684,7 @@ jobs:
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
                                                "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
     - name: Xcode
-      run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
     - name: Setup swift quickstart
       env:
         LEGACY: true

+ 13 - 1
scripts/zip_quickstart_test.sh

@@ -30,11 +30,23 @@ if [[ ! -z "$LEGACY" ]]; then
   cd "Legacy${SAMPLE}Quickstart"
 fi
 
+xcode_version=$(xcodebuild -version | grep Xcode)
+xcode_version="${xcode_version/Xcode /}"
+xcode_major="${xcode_version/.*/}"
+
+if [[ "$xcode_major" -lt 15 ]]; then
+  device_name="iPhone 14"
+elif [[ "$xcode_major" -lt 16 ]]; then
+  device_name="iPhone 15"
+else
+  device_name="iPhone 16"
+fi
+
 (
 xcodebuild \
 -project ${SAMPLE}Example.xcodeproj \
 -scheme  ${SAMPLE}Example${SWIFT_SUFFIX} \
--destination 'platform=iOS Simulator,name=iPhone 14' "SWIFT_VERSION=5.3" "OTHER_LDFLAGS=\$(OTHER_LDFLAGS) -ObjC" "FRAMEWORK_SEARCH_PATHS= \$(PROJECT_DIR)/Firebase/" HEADER_SEARCH_PATHS='$(PROJECT_DIR)/Firebase' \
+-destination "platform=iOS Simulator,name=$device_name" "SWIFT_VERSION=5.3" "OTHER_LDFLAGS=\$(OTHER_LDFLAGS) -ObjC" "FRAMEWORK_SEARCH_PATHS= \$(PROJECT_DIR)/Firebase/" HEADER_SEARCH_PATHS='$(PROJECT_DIR)/Firebase' \
 build \
 ) || EXIT_STATUS=$?