-
Notifications
You must be signed in to change notification settings - Fork 1.7k
131 lines (125 loc) · 5.35 KB
/
release.spm.prerelease.yml
File metadata and controls
131 lines (125 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: release.spm.prerelease
permissions:
contents: read
on:
pull_request:
# closed will be triggered when a pull request is merged. This is to keep https://github.com/firebase/SpecsTesting up to date.
# types: [closed] # TODO(ncooke3): Uncomment.
paths:
- '.github/workflows/release.spm.prerelease.yml'
workflow_dispatch:
schedule:
# Run every day at 10pm (PDT) / 1am (EDT) - cron uses UTC times
- cron: '0 5 * * *'
env:
FIREBASE_CI: true
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
# TODO: The functions quickstart uses Material which isn't supported by Xcode 15+
#functions_quickstart:
# 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 == 'workflow_dispatch'
# needs: buildup_SpecsTesting_repo
# env:
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
# botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }}
# # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
# runs-on: macos-12
# steps:
# - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
# - name: Xcode
# run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
# - name: Setup testing repo and quickstart
# run: 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: Setup custom URL scheme
# run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
# - name: Test objc quickstart
# run: ([ -z $plist_secret ] ||
# scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
# - name: Test swift quickstart
# run: ([ -z $plist_secret ] ||
# scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
# - name: Remove data before upload
# if: ${{ failure() }}
# run: scripts/remove_data.sh functions
# - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
# if: ${{ failure() }}
# with:
# name: quickstart_artifacts_functions
# path: quickstart-ios/
quickstart:
environment: release-testing
# Don't run on private repo unless it is a PR.
if: |
github.repository == 'firebase/firebase-ios-sdk' &&
contains(fromJSON('["schedule", "pull_request", "workflow_dispatch"]'), github.event_name)
strategy:
fail-fast: false
matrix:
include:
- product: Performance
run_tests: false
- product: Storage
run_tests: false
- product: Config
run_tests: true
- product: Messaging
run_tests: false
- product: InAppMessaging
run_tests: false
- product: Firestore
run_tests: false
timeout_minutes: 30
- product: Database
run_tests: false
- product: Authentication
run_tests: false
- product: Crashlytics
run_tests: true
- product: ABTesting
run_tests: true
name: 'quickstart (prerelease, ${{ matrix.product }}, run_tests: ${{ matrix.run_tests }})'
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
botaccess: ${{ secrets.PRERELEASE_TESTING_PAT }}
runs-on: macos-15
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Prereqs
run: gem install xcpretty
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
- name: Setup testing repo and quickstart
run: scripts/setup_quickstart.sh ${{ matrix.product }} prerelease_testing
- name: Install Secret GoogleService-Info.plist
run: |
scripts/decrypt_gha_secret.sh \
scripts/gha-encrypted/qs-${{ matrix.product }}.plist.gpg \
quickstart-ios/${{ matrix.product }}/GoogleService-Info.plist \
"$plist_secret"
- name: Build Quickstart
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: ${{ matrix.timeout_minutes || 15 }}
max_attempts: 3
retry_wait_seconds: 120
command: DIR=${{ matrix.product }} scripts/test_quickstart.sh ${{ matrix.product }} ${{ matrix.run_tests }}
# Failure sequence to upload artifact.
- name: Remove data before upload.
if: ${{ failure() }}
run: scripts/remove_data.sh ${{ matrix.product }}
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: ${{ failure() }}
with:
name: quickstart_artifacts_${{ matrix.product }}
path: |
quickstart-ios/
!quickstart-ios/**/GoogleService-Info.plist