Skip to content

Commit 06fe51a

Browse files
committed
abtesting
1 parent cca2823 commit 06fe51a

File tree

2 files changed

+153
-221
lines changed

2 files changed

+153
-221
lines changed

.github/workflows/abtesting.yml

Lines changed: 145 additions & 215 deletions
Original file line numberDiff line numberDiff line change
@@ -17,221 +17,151 @@ concurrency:
1717
cancel-in-progress: true
1818

1919
jobs:
20-
pod-lib-lint:
21-
# Don't run on private repo unless it is a PR.
22-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
23-
24-
strategy:
25-
matrix:
26-
include:
27-
- os: macos-14
28-
xcode: Xcode_16.2
29-
target: ios
30-
- os: macos-15
31-
xcode: Xcode_16.2
32-
target: ios
33-
- os: macos-15
34-
xcode: Xcode_16.2
35-
target: tvos
36-
- os: macos-15
37-
xcode: Xcode_16.2
38-
target: macos
39-
- os: macos-15
40-
xcode: Xcode_16.2
41-
target: watchos
42-
runs-on: ${{ matrix.os }}
43-
steps:
44-
- uses: actions/checkout@v4
45-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
46-
- name: Setup Bundler
47-
run: scripts/setup_bundler.sh
48-
- name: Xcode
49-
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
50-
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
51-
with:
52-
timeout_minutes: 120
53-
max_attempts: 3
54-
retry_on: error
55-
retry_wait_seconds: 120
56-
command: scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=${{ matrix.target }}
57-
58-
spm-package-resolved:
59-
env:
60-
FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
61-
runs-on: macos-15
62-
outputs:
63-
cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
64-
steps:
65-
- uses: actions/checkout@v4
66-
- name: Xcode
67-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
68-
- name: Generate Swift Package.resolved
69-
id: swift_package_resolve
70-
run: |
71-
swift package resolve
72-
- name: Generate cache key
73-
id: generate_cache_key
74-
run: |
75-
cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
76-
echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
77-
- uses: actions/cache/save@v4
78-
id: cache
79-
with:
80-
path: .build
81-
key: ${{ steps.generate_cache_key.outputs.cache_key }}
20+
# pod-lib-lint:
21+
# # Don't run on private repo unless it is a PR.
22+
# if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
23+
#
24+
# strategy:
25+
# matrix:
26+
# include:
27+
# - os: macos-14
28+
# xcode: Xcode_16.2
29+
# target: ios
30+
# - os: macos-15
31+
# xcode: Xcode_16.2
32+
# target: ios
33+
# - os: macos-15
34+
# xcode: Xcode_16.2
35+
# target: tvos
36+
# - os: macos-15
37+
# xcode: Xcode_16.2
38+
# target: macos
39+
# - os: macos-15
40+
# xcode: Xcode_16.2
41+
# target: watchos
42+
# runs-on: ${{ matrix.os }}
43+
# steps:
44+
# - uses: actions/checkout@v4
45+
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
46+
# - name: Setup Bundler
47+
# run: scripts/setup_bundler.sh
48+
# - name: Xcode
49+
# run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
50+
# - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
51+
# with:
52+
# timeout_minutes: 120
53+
# max_attempts: 3
54+
# retry_on: error
55+
# retry_wait_seconds: 120
56+
# command: scripts/pod_lib_lint.rb FirebaseABTesting.podspec --platforms=${{ matrix.target }}
8257

8358
spm:
84-
# Don't run on private repo unless it is a PR.
85-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
86-
needs: [spm-package-resolved]
87-
strategy:
88-
matrix:
89-
include:
90-
- os: macos-14
91-
xcode: Xcode_16.2
92-
target: iOS
93-
- os: macos-15
94-
xcode: Xcode_16.2
95-
target: iOS
96-
- os: macos-15
97-
xcode: Xcode_16.2
98-
target: tvOS
99-
- os: macos-15
100-
xcode: Xcode_16.2
101-
target: macOS
102-
- os: macos-15
103-
xcode: Xcode_16.2
104-
target: watchOS
105-
- os: macos-15
106-
xcode: Xcode_16.2
107-
target: catalyst
108-
- os: macos-15
109-
xcode: Xcode_16.2
110-
target: visionOS
111-
runs-on: ${{ matrix.os }}
112-
steps:
113-
- uses: actions/checkout@v4
114-
- uses: actions/cache/restore@v4
115-
with:
116-
path: .build
117-
key: ${{needs.spm-package-resolved.outputs.cache_key}}
118-
- name: Xcode
119-
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
120-
- name: Install visionOS, if needed.
121-
if: matrix.target == 'visionOS'
122-
run: xcodebuild -downloadPlatform visionOS
123-
- name: Initialize xcodebuild
124-
run: scripts/setup_spm_tests.sh
125-
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
126-
with:
127-
timeout_minutes: 120
128-
max_attempts: 3
129-
retry_on: error
130-
retry_wait_seconds: 120
131-
command: scripts/build.sh ABTestingUnit ${{ matrix.target }} spm
132-
133-
catalyst:
134-
# Don't run on private repo unless it is a PR.
135-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
136-
137-
runs-on: macos-15
138-
steps:
139-
- uses: actions/checkout@v4
140-
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
141-
with:
142-
cache_key: catalyst${{ matrix.os }}
143-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
144-
- name: Setup Bundler
145-
run: scripts/setup_bundler.sh
146-
- name: Xcode
147-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
148-
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
149-
with:
150-
timeout_minutes: 120
151-
max_attempts: 3
152-
retry_on: error
153-
retry_wait_seconds: 120
154-
command: scripts/test_catalyst.sh FirebaseABTesting test FirebaseABTesting-Unit-unit
155-
156-
quickstart:
157-
# Don't run on private repo unless it is a PR.
158-
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
159-
160-
env:
161-
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
162-
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
163-
runs-on: macos-15
164-
steps:
165-
- uses: actions/checkout@v4
166-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
167-
- name: Xcode
168-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
169-
- name: Setup quickstart
170-
env:
171-
LEGACY: true
172-
run: scripts/setup_quickstart.sh abtesting
173-
- name: Install Secret GoogleService-Info.plist
174-
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
175-
quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
176-
- name: Test swift quickstart
177-
env:
178-
LEGACY: true
179-
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
180-
181-
quickstart-ftl-cron-only:
182-
# Don't run on private repo.
183-
if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule'
184-
185-
env:
186-
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
187-
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
188-
runs-on: macos-15
189-
steps:
190-
- uses: actions/checkout@v4
191-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
192-
- uses: actions/setup-python@v5
193-
with:
194-
python-version: '3.11'
195-
- name: Setup quickstart
196-
env:
197-
LEGACY: true
198-
run: scripts/setup_quickstart.sh abtesting
199-
- name: Install Secret GoogleService-Info.plist
200-
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
201-
quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
202-
- name: Xcode
203-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
204-
- name: Build swift quickstart
205-
env:
206-
LEGACY: true
207-
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh ABTesting)
208-
- id: ftl_test
209-
uses: FirebaseExtended/github-actions/[email protected]
210-
with:
211-
credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }}
212-
testapp_dir: quickstart-ios/build-for-testing
213-
test_type: "xctest"
214-
215-
abtesting-cron-only:
216-
# Don't run on private repo.
217-
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
59+
uses: ./.github/workflows/common.yml
60+
with:
61+
target: ABTestingUnit
21862

219-
runs-on: macos-15
220-
strategy:
221-
matrix:
222-
target: [ios, tvos, macos]
223-
flags: [
224-
'--use-static-frameworks'
225-
]
226-
needs: pod-lib-lint
227-
steps:
228-
- uses: actions/checkout@v4
229-
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
230-
- name: Setup Bundler
231-
run: scripts/setup_bundler.sh
232-
- name: Xcode
233-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
234-
- name: PodLibLint ABTesting Cron
235-
run: |
236-
scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \
237-
FirebaseABTesting.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
63+
# catalyst:
64+
# # Don't run on private repo unless it is a PR.
65+
# if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
66+
#
67+
# runs-on: macos-15
68+
# steps:
69+
# - uses: actions/checkout@v4
70+
# - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
71+
# with:
72+
# cache_key: catalyst${{ matrix.os }}
73+
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
74+
# - name: Setup Bundler
75+
# run: scripts/setup_bundler.sh
76+
# - name: Xcode
77+
# run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
78+
# - uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
79+
# with:
80+
# timeout_minutes: 120
81+
# max_attempts: 3
82+
# retry_on: error
83+
# retry_wait_seconds: 120
84+
# command: scripts/test_catalyst.sh FirebaseABTesting test FirebaseABTesting-Unit-unit
85+
#
86+
# quickstart:
87+
# # Don't run on private repo unless it is a PR.
88+
# if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
89+
#
90+
# env:
91+
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
92+
# signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
93+
# runs-on: macos-15
94+
# steps:
95+
# - uses: actions/checkout@v4
96+
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
97+
# - name: Xcode
98+
# run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
99+
# - name: Setup quickstart
100+
# env:
101+
# LEGACY: true
102+
# run: scripts/setup_quickstart.sh abtesting
103+
# - name: Install Secret GoogleService-Info.plist
104+
# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
105+
# quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
106+
# - name: Test swift quickstart
107+
# env:
108+
# LEGACY: true
109+
# run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
110+
#
111+
# quickstart-ftl-cron-only:
112+
# # Don't run on private repo.
113+
# if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule'
114+
#
115+
# env:
116+
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
117+
# signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
118+
# runs-on: macos-15
119+
# steps:
120+
# - uses: actions/checkout@v4
121+
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
122+
# - uses: actions/setup-python@v5
123+
# with:
124+
# python-version: '3.11'
125+
# - name: Setup quickstart
126+
# env:
127+
# LEGACY: true
128+
# run: scripts/setup_quickstart.sh abtesting
129+
# - name: Install Secret GoogleService-Info.plist
130+
# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
131+
# quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
132+
# - name: Xcode
133+
# run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
134+
# - name: Build swift quickstart
135+
# env:
136+
# LEGACY: true
137+
# run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh ABTesting)
138+
# - id: ftl_test
139+
# uses: FirebaseExtended/github-actions/[email protected]
140+
# with:
141+
# credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }}
142+
# testapp_dir: quickstart-ios/build-for-testing
143+
# test_type: "xctest"
144+
#
145+
# abtesting-cron-only:
146+
# # Don't run on private repo.
147+
# if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
148+
#
149+
# runs-on: macos-15
150+
# strategy:
151+
# matrix:
152+
# target: [ios, tvos, macos]
153+
# flags: [
154+
# '--use-static-frameworks'
155+
# ]
156+
# needs: pod-lib-lint
157+
# steps:
158+
# - uses: actions/checkout@v4
159+
# - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
160+
# - name: Setup Bundler
161+
# run: scripts/setup_bundler.sh
162+
# - name: Xcode
163+
# run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
164+
# - name: PodLibLint ABTesting Cron
165+
# run: |
166+
# scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \
167+
# FirebaseABTesting.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}

.github/workflows/common.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
target:
77
required: true
88
type: string
9-
9+
1010
jobs:
1111
spm-package-resolved:
1212
env:
@@ -47,9 +47,6 @@ jobs:
4747
- os: macos-15
4848
xcode: Xcode_16.2
4949
platform: iOS
50-
- os: macos-15
51-
xcode: Xcode_16.2
52-
platform: iOS
5350
- os: macos-15
5451
xcode: Xcode_16.2
5552
platform: tvOS
@@ -79,5 +76,10 @@ jobs:
7976
run: xcodebuild -downloadPlatform visionOS
8077
- name: Initialize xcodebuild
8178
run: scripts/setup_spm_tests.sh
82-
- name: Unit Tests
83-
run: scripts/third_party/travis/retry.sh ./scripts/build.sh ${{ inputs.target }} ${{ matrix.platform }} spm
79+
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
80+
with:
81+
timeout_minutes: 120
82+
max_attempts: 3
83+
retry_on: error
84+
retry_wait_seconds: 120
85+
command: ./scripts/build.sh ${{ inputs.target }} ${{ matrix.platform }} spm

0 commit comments

Comments
 (0)