Преглед изворни кода

Add release candidate prerelease workflow. (#6487)

This also update cocoapods source to cocoapods repo since cdn is failed to connect.
Gran пре 5 година
родитељ
комит
9f8d395637

+ 469 - 0
.github/workflows/prerelease.yml

@@ -0,0 +1,469 @@
+name: prerelease
+
+on:
+  pull_request:
+    paths:
+    - '.github/workflows/prerelease.yml'
+  schedule:
+    # Run every day at 11pm (PST) - cron uses UTC times
+    - cron:  '0 7 * * *'
+
+jobs:
+  buildup_SpecsReleasing_repo:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    env:
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      local_repo: specstesting
+      local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
+      nightly_version: 6.33.0
+      podspec_repo_branch: release-6.33.0
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: |
+         scripts/decrypt_gha_secret.sh scripts/gha-encrypted/oss-bot-access.txt.gpg \
+         oss-bot-access.txt "$bot_token_secret"
+         scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+         bot-access.txt "$bot_token_secret"
+    - name: Update SpecsReleasing repo setup
+      run: |
+         ossbotaccess=`cat oss-bot-access.txt`
+         BOT_TOKEN="${ossbotaccess}" test_version="${nightly_version}" sdk_version_config="${GITHUB_WORKSPACE}/scripts/create_spec_repo/RC_firebase_sdk.textproto" scripts/release_testing_setup.sh RC_testing
+    - name: Update SpecsReleasing repo
+      run: |
+        botaccess=`cat bot-access.txt`
+        cd scripts/create_spec_repo/
+        swift build
+        pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/FirebasePrivate/SpecsReleasing.git
+        BOT_TOKEN="${botaccess}"  .build/debug/spec-repo-builder --sdk-repo "${local_sdk_repo_dir}" --local-spec-repo-name "${local_repo}" --sdk-repo-name SpecsReleasing --pod-sources 'https://${BOT_TOKEN}@github.com/FirebasePrivate/SpecsReleasing' --pod-sources "https://github.com/CocoaPods/Specs"
+    - name: Clean Artifacts
+      if: ${{ always() }}
+      run: |
+        pod repo remove "${local_repo}"
+        rm -rf bot-access.txt
+
+  abtesting_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
+          quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh config release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_abtesting
+        path: quickstart-ios/
+
+  auth_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
+          quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh authentication release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_auth
+        path: quickstart-ios/
+
+  crashlytics_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
+          quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: |
+        mkdir -p quickstart-ios/crashlytics/Pods/FirebaseCrashlytics
+        # Set the deployed pod location of run and upload-symbols with the development pod version.
+        cp Crashlytics/run quickstart-ios/crashlytics/Pods/FirebaseCrashlytics/
+        cp Crashlytics/upload-symbols quickstart-ios/crashlytics/Pods/FirebaseCrashlytics/
+        ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh crashlytics release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_crashlytics
+        path: quickstart-ios/
+
+  database_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
+          quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh database release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_database
+        path: quickstart-ios/
+
+  dynamiclinks_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
+          quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
+    - name: Update Environment Variable For DynamicLinks
+      run: |
+        sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
+        sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
+        sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks)
+    - name: Test swift quickstart
+      if: ${{ always() }}
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh dynamiclinks release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_dynamiclinks
+        path: quickstart-ios/
+
+  firestore_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore prerelease_testing
+    - 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"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh firestore release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_firestore
+        path: quickstart-ios/
+
+  functions_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions prerelease_testing
+    - name: install secret googleservice-info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
+          quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Setup custom URL scheme
+      run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/FunctionsExample/Info.plist
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh functions release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_functions
+        path: quickstart-ios/
+
+  inappmessaging_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging prerelease_testing
+    - name: install secret googleservice-info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
+          quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh inappmessaging release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_inappmessaging
+        path: quickstart-ios/
+
+  messaging_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
+          quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh messaging release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_messaging
+        path: quickstart-ios/
+
+  remoteconfig_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
+          quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test Swift Quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh config release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_config
+        path: quickstart-ios/
+
+  storage_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
+          quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh storage release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_storage
+        path: quickstart-ios/

+ 34 - 33
.github/workflows/release.yml

@@ -44,39 +44,6 @@ jobs:
       run: |
         pod repo remove "${local_repo}"
         rm -rf bot-access.txt
-  remoteconfig_quickstart:
-    # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
-    needs: buildup_SpecsTesting_repo
-    env:
-      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-    runs-on: macOS-latest
-    steps:
-    - uses: actions/checkout@v2
-    - name: Get token
-      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
-          bot-access.txt "$bot_token_secret"
-    - name: Setup testing repo and quickstart
-      run: |
-          botaccess=`cat bot-access.txt`
-          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
-    - name: Install Secret GoogleService-Info.plist
-      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
-          quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
-    - name: Install Secret FIREGSignInInfo.h
-      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
-          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
-    - name: Test Swift Quickstart
-      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config)
-    - name: Remove data before upload
-      run: scripts/remove_data.sh config release_testing
-    - uses: actions/upload-artifact@v2
-      if: ${{ failure() }}
-      with:
-        name: quickstart_artifacts_config
-        path: quickstart-ios/
 
   abtesting_quickstart:
     # Don't run on private repo unless it is a PR.
@@ -430,6 +397,40 @@ jobs:
         name: quickstart_artifacts_messaging
         path: quickstart-ios/
 
+  remoteconfig_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    needs: buildup_SpecsTesting_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
+          quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test Swift Quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh config release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_config
+        path: quickstart-ios/
+
   storage_quickstart:
     # Don't run on private repo unless it is a PR.
     if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'

+ 13 - 0
scripts/create_spec_repo/RC_firebase_sdk.textproto

@@ -0,0 +1,13 @@
+# Config file to update versions of Pods which will be pushed to SpecsStaging
+# repo by add_podspec tool.
+# e.g.
+# sdk {
+#   sdk_name: "FirebaseAnalytics"
+#   sdk_version: "6.8.2"
+# }
+# Podspec versions will be the same as firebase-ios-sdk podspecs if they are not
+# specified in this file.
+sdk {
+  sdk_name: "FirebaseAnalytics"
+  sdk_version: "6.8.2"
+}

+ 1 - 1
scripts/create_spec_repo/Sources/SpecRepoBuilder/main.swift

@@ -24,7 +24,7 @@ extension Constants {
   static let dependencyLineSeparators = CharacterSet(charactersIn: " ,/")
   static let podSources = [
     "https://${BOT_TOKEN}@github.com/FirebasePrivate/SpecsTesting",
-    "https://cdn.cocoapods.org/",
+    "https://github.com/CocoaPods/Specs",
   ]
   static let exclusivePods: [String] = ["GoogleAppMeasurement", "FirebaseAnalytics"]
 }

+ 4 - 0
scripts/create_spec_repo/firebase_sdk.textproto

@@ -1,5 +1,9 @@
 # Config file to update versions of Pods which will be pushed to SpecsStaging
 # repo by add_podspec tool.
 # e.g.
+# sdk {
+#   sdk_name: "FirebaseAnalytics"
+#   sdk_version: "6.8.2"
+# }
 # Podspec versions will be the same as firebase-ios-sdk podspecs if they are not
 # specified in this file.

+ 8 - 4
scripts/release_testing_setup.sh

@@ -49,7 +49,11 @@ if [ -n "$tag_version" ]; then
   # ":tag => test"
   sed  -i "" "s/\s*:tag.*/:tag => '${tag_version}'/" *.podspec
 fi
-cd "${GITHUB_WORKSPACE}/ZipBuilder"
-swift build
-# Update Pod versions.
-./.build/debug/firebase-pod-updater --git-root "${local_sdk_repo_dir}" --releasing-pods "${GITHUB_WORKSPACE}/scripts/create_spec_repo/firebase_sdk.textproto"
+
+if [ -n "$sdk_version_config" ]; then
+  cd "${GITHUB_WORKSPACE}/ZipBuilder"
+  swift build
+  # Update Pod versions.
+  ./.build/debug/firebase-pod-updater --git-root "${local_sdk_repo_dir}" --releasing-pods "${sdk_version_config}"
+  echo "sdk versions are updated based on ${sdk_version_config}."
+fi