11name : archiving
22
3+ permissions :
4+ contents : read
5+
36on :
47 workflow_dispatch :
58 pull_request :
@@ -18,47 +21,50 @@ jobs:
1821 # Archive tests for pods that support iOS only.
1922 pods-ios-only-cron :
2023 # Don't run on private repo.
21- if : (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule')
22-
24+ if : github.repository == 'Firebase/firebase-ios-sdk'
2325 runs-on : macos-15
2426 strategy :
2527 matrix :
2628 # These need to be on a single line or else the formatting won't validate.
2729 pod : ["FirebaseAppDistribution", "FirebaseInAppMessaging", "FirebasePerformance"]
2830 steps :
29- - uses : actions/checkout@v4
31+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
3032 - name : Set Xcode version
3133 run : sudo xcode-select -s /Applications/Xcode_16.4.app
32- - uses : mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
33- with :
34- cache_key : cron-${{ matrix.os }}
3534 - uses : ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
3635 - name : Setup Bundler
3736 run : scripts/setup_bundler.sh
3837 - name : Setup project and archive
39- run : scripts/test_archiving.sh ${{ matrix.pod }} ios ArchiveOutputs/ios.xcarchive
38+ uses : nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
39+ with :
40+ timeout_minutes : 20
41+ max_attempts : 3
42+ retry_wait_seconds : 300
43+ command : scripts/test_archiving.sh ${{ matrix.pod }} ios ArchiveOutputs/ios.xcarchive
4044
4145
4246 # Archive tests for pods that support iOS, tvOS, and macOS.
4347 pods-ios-tvos-macos-cron :
4448 # Don't run on private repo.
45- if : (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule')
46-
49+ if : github.repository == 'Firebase/firebase-ios-sdk'
4750 runs-on : macos-15
4851 strategy :
4952 matrix :
5053 target : [ios, tvos, macos]
5154 # These need to be on a single line or else the formatting won't validate.
5255 pod : ["FirebaseABTesting", "FirebaseAuth", "FirebaseCore", "FirebaseCrashlytics", "FirebaseDatabase", "FirebaseFirestore", "FirebaseFunctions", "FirebaseMessaging", "FirebaseRemoteConfig", "FirebaseStorage"]
5356 steps :
54- - uses : actions/checkout@v4
57+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
5558 - name : Set Xcode version
5659 run : sudo xcode-select -s /Applications/Xcode_16.4.app
57- - uses : mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
58- with :
59- cache_key : pods-${{ matrix.os }}
6060 - uses : ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
6161 - name : Setup Bundler
6262 run : scripts/setup_bundler.sh
6363 - name : Setup project and archive
64- run : scripts/test_archiving.sh ${{ matrix.pod }} ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive
64+ uses : nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
65+ with :
66+ # Firestore gets a 60 min. timeout, everything else gets 20 min.
67+ timeout_minutes : ${{ matrix.pod == 'FirebaseFirestore' && 60 || 20 }}
68+ max_attempts : 3
69+ retry_wait_seconds : 300
70+ command : scripts/test_archiving.sh ${{ matrix.pod }} ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive
0 commit comments