Skip to content

Commit f11ef67

Browse files
jonsimantovborissoftsunmou99firebase-workflow-trigger[bot]firebase-workflow-trigger-bot
authored
Feature/admob 2021 merge from main 2 (#787)
* Fix link in readme (#768) * update test devices (#757) * Timeout and Retry FTL failures and mark flakiness * Update C++ SDK version to 8.8.0. * Add Analytics header update to iOS SDK update. (#775) * Add Analytics header update to iOS SDK update. * Update Android dependencies - Wed Dec 01 2021 (#773) ### Android - com.google.firebase.firebase_database → 20.0.3 - com.google.firebase.firebase_perf → 20.0.4 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/1527401903). Co-authored-by: firebase-workflow-trigger-bot <[email protected]> * Fix typo in log output. * Change Xcode version from 12.2 to 12.4 to ensure GitHub support. (#774) * Change Xcode version from 12.2 to 12.4 to ensure GitHub support. * Fix integration tests workflow to respect xcode_version in matrix. * Add extra newline to header comment. * Update iOS dependencies - Thu Dec 02 2021 (#779) * Update iOS dependencies - Thu Dec 02 2021 ### iOS - Firebase/Analytics → 8.10.0 - Firebase/Auth → 8.10.0 - Firebase/Core → 8.10.0 - Firebase/Crashlytics → 8.10.0 - Firebase/Database → 8.10.0 - Firebase/DynamicLinks → 8.10.0 - Firebase/Firestore → 8.10.0 - Firebase/Functions → 8.10.0 - Firebase/Installations → 8.10.0 - Firebase/Messaging → 8.10.0 - Firebase/RemoteConfig → 8.10.0 - Firebase/Storage → 8.10.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/1528664697). * Add missing copyright lines. * Add Firestore release note. Co-authored-by: firebase-workflow-trigger-bot <[email protected]> Co-authored-by: Jon Simantov <[email protected]> * Properly convert milliseconds to seconds (#767) * Properly convert milliseconds to seconds Currently, a value expressed in milliseconds is directly assigned to a variable which is supposed to store seconds and it's later converted to mills again. Thus, convert properly upon assignment * Update readme.md * Change LogDebug to NSLog in app's swizzling code. (#783) * Change LogDebug to NSLog. * Change log message. * Add comment. * Add copyright line when importing Analytics iOS headers, if missing (#780) * Add copyright line to iOS headers * Make copyright conditional to whether the file already has one. * Also set Xcode version explicitly in Android workflow. (#786) * Timeout & retry "install integration test deps" step (#785) * Format code. Co-authored-by: Борис Рязанцев <[email protected]> Co-authored-by: Mou Sun <[email protected]> Co-authored-by: firebase-workflow-trigger[bot] <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Co-authored-by: firebase-workflow-trigger-bot <[email protected]> Co-authored-by: pawelsnk <[email protected]>
2 parents 4b914d2 + 8d5e863 commit f11ef67

File tree

41 files changed

+478
-275
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+478
-275
lines changed

.github/workflows/android.yml

+5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ on:
1313
env:
1414
CCACHE_DIR: ${{ github.workspace }}/ccache_dir
1515
GITHUB_TOKEN: ${{ github.token }}
16+
xcodeVersion: "12.4" # Only affects Mac runners, and only for prerequisites.
1617

1718
jobs:
1819
prepare_matrix:
@@ -46,6 +47,10 @@ jobs:
4647
architecture: ${{ fromJson(needs.prepare_matrix.outputs.matrix_architecture) }}
4748
python_version: ${{ fromJson(needs.prepare_matrix.outputs.matrix_python_version) }}
4849
steps:
50+
- name: setup Xcode version (macos)
51+
if: runner.os == 'macOS'
52+
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer
53+
4954
- name: Store git credentials for all git commands
5055
# Forces all git commands to use authenticated https, to prevent throttling.
5156
shell: bash

.github/workflows/cpp-packaging.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ env:
3232
demumbleVer: "1.1.0"
3333
# Use SHA256 for hashing files.
3434
hashCommand: "sha256sum"
35-
# Xcode version 12.2 is the version we build the SDK with.
35+
# Xcode version 12.4 is the version we build the SDK with.
3636
# Our MacOS runners will use the version in /Applications/Xcode_${xcodeVersion}.app
37-
xcodeVersion: "12.2"
37+
xcodeVersion: "12.4"
3838
# LLVM version with ARM MachO support has no version number yet.
3939
llvmVer: "5f187f0afaad33013ba03454c4749d99b1362534"
4040
GITHUB_TOKEN: ${{ github.token }}

.github/workflows/desktop.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,13 @@ jobs:
7474
architecture: "x86"
7575
# Xcode excludes -- allow only one on osx and linux
7676
- os: ubuntu-latest
77-
xcode_version: "12.4"
77+
xcode_version: "11.7"
7878
- os: windows-latest
79-
xcode_version: "12.4"
79+
xcode_version: "11.7"
80+
- os: ubuntu-latest
81+
xcode_version: "12.5.1"
82+
- os: windows-latest
83+
xcode_version: "12.5.1"
8084
# arm64 is only for macos
8185
- os: ubuntu-latest
8286
architecture: "arm64"

.github/workflows/integration_tests.yml

+118-48
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ jobs:
6262
apis: ${{ steps.matrix_config.outputs.apis }}
6363
mobile_test_on: ${{ steps.matrix_config.outputs.mobile_test_on }}
6464
android_device: ${{ steps.matrix_config.outputs.android_device }}
65+
xcode_version: ${{ steps.matrix_config.outputs.xcode_version }}
6566
ios_device: ${{ steps.matrix_config.outputs.ios_device }}
6667
tvos_device: ${{ steps.matrix_config.outputs.tvos_device }}
6768
steps:
@@ -144,7 +145,12 @@ jobs:
144145
with:
145146
python-version: ${{ env.pythonVersion }}
146147
- name: Install python deps
147-
run: pip install -r scripts/gha/requirements.txt
148+
uses: nick-invision/retry@v2
149+
with:
150+
timeout_minutes: 1
151+
max_attempts: 3
152+
shell: bash
153+
command: pip install -r scripts/gha/requirements.txt
148154
- id: matrix_config
149155
run: |
150156
if [[ "${{ steps.set_outputs.outputs.requested_tests }}" == "expanded" ]]; then
@@ -182,6 +188,7 @@ jobs:
182188
mobile_test_on=$( python scripts/gha/print_matrix_configuration.py -c -w integration_tests -k mobile_test_on -o "${{github.event.inputs.mobile_test_on}}")
183189
echo "::set-output name=mobile_test_on::${mobile_test_on}"
184190
echo "::set-output name=android_device::$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k android_device -t ${mobile_test_on} )"
191+
echo "::set-output name=xcode_version::$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k xcode_version)"
185192
echo "::set-output name=ios_device::$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k ios_device -t ${mobile_test_on} )"
186193
echo "::set-output name=tvos_device::$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k tvos_device -t ${mobile_test_on} )"
187194
- name: Update PR label and comment
@@ -208,6 +215,9 @@ jobs:
208215
os: ${{ fromJson(needs.check_and_prepare.outputs.matrix_os) }}
209216
ssl_variant: ${{ fromJson(needs.check_and_prepare.outputs.matrix_ssl) }}
210217
steps:
218+
- name: setup Xcode version (macos)
219+
if: runner.os == 'macOS'
220+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
211221
- uses: actions/checkout@v2
212222
with:
213223
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -255,30 +265,40 @@ jobs:
255265
# homebrew. This prevents errors arising from the shut down of
256266
# binutils, used by older version of homebrew for hosting packages.
257267
brew update
258-
- name: Install SDK Desktop prerequisites
259-
run: |
260-
python scripts/gha/install_prereqs_desktop.py
261-
- name: Prepare for integration tests
262-
run: |
263-
pip install -r scripts/gha/requirements.txt
264-
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
268+
- name: Install Desktop SDK & integration tests prerequisites
269+
uses: nick-invision/retry@v2
270+
with:
271+
timeout_minutes: 2
272+
max_attempts: 3
273+
command: |
274+
python scripts/gha/install_prereqs_desktop.py
275+
pip install -r scripts/gha/requirements.txt
276+
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
265277
- name: Install OpenSSL (Windows)
266-
if: matrix.ssl_variant == 'openssl' &&
267-
startsWith(matrix.os, 'windows')
268-
run: |
269-
choco install openssl -r
278+
if: matrix.ssl_variant == 'openssl' && startsWith(matrix.os, 'windows')
279+
uses: nick-invision/retry@v2
280+
with:
281+
timeout_minutes: 4
282+
max_attempts: 3
283+
shell: bash
284+
command: choco install openssl -r
270285
- name: Install OpenSSL (macOS)
271-
if: matrix.ssl_variant == 'openssl' &&
272-
startsWith(matrix.os, 'macos')
273-
run: |
274-
brew install openssl
275-
# brew won't overwrite MacOS system default OpenSSL, so force it here.
276-
echo "OPENSSL_ROOT_DIR=/usr/local/opt/[email protected]" >> $GITHUB_ENV
286+
if: matrix.ssl_variant == 'openssl' && startsWith(matrix.os, 'macos')
287+
uses: nick-invision/retry@v2
288+
with:
289+
timeout_minutes: 2
290+
max_attempts: 3
291+
command: |
292+
brew install openssl
293+
# brew won't overwrite MacOS system default OpenSSL, so force it here.
294+
echo "OPENSSL_ROOT_DIR=/usr/local/opt/[email protected]" >> $GITHUB_ENV
277295
- name: Install OpenSSL (Linux)
278-
if: matrix.ssl_variant == 'openssl' &&
279-
startsWith(matrix.os, 'ubuntu')
280-
run: |
281-
sudo apt install openssl
296+
if: matrix.ssl_variant == 'openssl' && startsWith(matrix.os, 'ubuntu')
297+
uses: nick-invision/retry@v2
298+
with:
299+
timeout_minutes: 2
300+
max_attempts: 3
301+
command: sudo apt install openssl
282302
- name: Fetch prebuilt packaged SDK from previous run
283303
uses: dawidd6/action-download-artifact@v2
284304
if: ${{ github.event.inputs.test_packaged_sdk != '' }}
@@ -387,6 +407,9 @@ jobs:
387407
matrix:
388408
os: ${{ fromJson(needs.check_and_prepare.outputs.matrix_os) }}
389409
steps:
410+
- name: setup Xcode version (macos)
411+
if: runner.os == 'macOS'
412+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
390413
- uses: actions/checkout@v2
391414
with:
392415
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -421,14 +444,16 @@ jobs:
421444
# homebrew. This prevents errors arising from the shut down of
422445
# binutils, used by older version of homebrew for hosting packages.
423446
brew update
424-
- name: Install SDK Android prerequisites
425-
shell: bash
426-
run: |
427-
build_scripts/android/install_prereqs.sh
428-
- name: Prepare for integration tests
429-
run: |
430-
pip install -r scripts/gha/requirements.txt
431-
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
447+
- name: Install Android SDK & integration tests prerequisites
448+
uses: nick-invision/retry@v2
449+
with:
450+
timeout_minutes: 10
451+
max_attempts: 3
452+
shell: bash
453+
command: |
454+
build_scripts/android/install_prereqs.sh
455+
pip install -r scripts/gha/requirements.txt
456+
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
432457
- name: Fetch prebuilt packaged SDK from previous run
433458
uses: dawidd6/action-download-artifact@v2
434459
if: ${{ github.event.inputs.test_packaged_sdk != '' }}
@@ -508,6 +533,9 @@ jobs:
508533
strategy:
509534
fail-fast: false
510535
steps:
536+
- name: setup Xcode version (macos)
537+
if: runner.os == 'macOS'
538+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
511539
- uses: actions/checkout@v2
512540
with:
513541
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -533,12 +561,15 @@ jobs:
533561
# homebrew. This prevents errors arising from the shut down of
534562
# binutils, used by older version of homebrew for hosting packages.
535563
brew update
536-
- name: Install SDK iOS prerequisites
537-
run: build_scripts/ios/install_prereqs.sh
538-
- name: Prepare for integration tests
539-
run: |
540-
pip install -r scripts/gha/requirements.txt
541-
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
564+
- name: Install iOS SDK & integration tests prerequisites
565+
uses: nick-invision/retry@v2
566+
with:
567+
timeout_minutes: 2
568+
max_attempts: 3
569+
command: |
570+
build_scripts/ios/install_prereqs.sh
571+
pip install -r scripts/gha/requirements.txt
572+
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
542573
- name: Fetch prebuilt packaged SDK from previous run
543574
uses: dawidd6/action-download-artifact@v2
544575
if: ${{ github.event.inputs.test_packaged_sdk != '' }}
@@ -619,6 +650,9 @@ jobs:
619650
strategy:
620651
fail-fast: false
621652
steps:
653+
- name: setup Xcode version (macos)
654+
if: runner.os == 'macOS'
655+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
622656
- uses: actions/checkout@v2
623657
with:
624658
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -638,12 +672,15 @@ jobs:
638672
# homebrew. This prevents errors arising from the shut down of
639673
# binutils, used by older version of homebrew for hosting packages.
640674
brew update
641-
- name: Install SDK tvOS prerequisites
642-
run: build_scripts/tvos/install_prereqs.sh
643-
- name: Prepare for integration tests
644-
run: |
645-
pip install -r scripts/gha/requirements.txt
646-
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
675+
- name: Install tvOS SDK & integration tests prerequisites
676+
uses: nick-invision/retry@v2
677+
with:
678+
timeout_minutes: 2
679+
max_attempts: 3
680+
command: |
681+
build_scripts/tvos/install_prereqs.sh
682+
pip install -r scripts/gha/requirements.txt
683+
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
647684
- name: Fetch prebuilt packaged SDK from previous run
648685
uses: dawidd6/action-download-artifact@v2
649686
if: ${{ github.event.inputs.test_packaged_sdk != '' }}
@@ -726,6 +763,9 @@ jobs:
726763
os: ${{ fromJson(needs.check_and_prepare.outputs.matrix_os) }}
727764
ssl_variant: ${{ fromJson(needs.check_and_prepare.outputs.matrix_ssl) }}
728765
steps:
766+
- name: setup Xcode version (macos)
767+
if: runner.os == 'macOS'
768+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
729769
- uses: actions/checkout@v2
730770
with:
731771
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -746,9 +786,14 @@ jobs:
746786
run: |
747787
npm install -g firebase-tools
748788
- name: Setup integration test deps
749-
run: |
750-
pip install -r scripts/gha/requirements.txt
751-
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}" --artifact testapps
789+
uses: nick-invision/retry@v2
790+
with:
791+
timeout_minutes: 2
792+
max_attempts: 3
793+
shell: bash
794+
command: |
795+
pip install -r scripts/gha/requirements.txt
796+
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}" --artifact testapps
752797
- name: Run Desktop integration tests
753798
run: firebase emulators:exec --only firestore --project demo-example 'python scripts/gha/desktop_tester.py --testapp_dir testapps --logfile_name "desktop-${{ matrix.os }}-${{ matrix.ssl_variant }}"'
754799
env:
@@ -802,6 +847,9 @@ jobs:
802847
build_os: ${{ fromJson(needs.check_and_prepare.outputs.matrix_os) }}
803848
android_device: ${{ fromJson(needs.check_and_prepare.outputs.android_device) }}
804849
steps:
850+
- name: setup Xcode version (macos)
851+
if: runner.os == 'macOS'
852+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
805853
- uses: actions/checkout@v2
806854
with:
807855
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -815,7 +863,12 @@ jobs:
815863
with:
816864
python-version: ${{ env.pythonVersion }}
817865
- name: Install python deps
818-
run: pip install -r scripts/gha/requirements.txt
866+
uses: nick-invision/retry@v2
867+
with:
868+
timeout_minutes: 1
869+
max_attempts: 3
870+
shell: bash
871+
command: pip install -r scripts/gha/requirements.txt
819872
- id: get-device-type
820873
run: |
821874
echo "::set-output name=device_type::$( python scripts/gha/print_matrix_configuration.py -d -k ${{ matrix.android_device }} )"
@@ -840,6 +893,7 @@ jobs:
840893
if: steps.get-device-type.outputs.device_type == 'real'
841894
uses: google-github-actions/setup-gcloud@master
842895
- name: Run Android integration tests on Real Device via FTL
896+
timeout-minutes: 60
843897
if: steps.get-device-type.outputs.device_type == 'real'
844898
run: |
845899
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
@@ -896,6 +950,9 @@ jobs:
896950
matrix:
897951
ios_device: ${{ fromJson(needs.check_and_prepare.outputs.ios_device) }}
898952
steps:
953+
- name: setup Xcode version (macos)
954+
if: runner.os == 'macOS'
955+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
899956
- uses: actions/checkout@v2
900957
with:
901958
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -909,7 +966,11 @@ jobs:
909966
with:
910967
python-version: ${{ env.pythonVersion }}
911968
- name: Install python deps
912-
run: pip install -r scripts/gha/requirements.txt
969+
uses: nick-invision/retry@v2
970+
with:
971+
timeout_minutes: 1
972+
max_attempts: 3
973+
command: pip install -r scripts/gha/requirements.txt
913974
- id: get-device-type
914975
run: |
915976
echo "::set-output name=device_type::$( python scripts/gha/print_matrix_configuration.py -d -k ${{ matrix.ios_device }} )"
@@ -934,6 +995,8 @@ jobs:
934995
if: steps.get-device-type.outputs.device_type == 'real'
935996
uses: google-github-actions/setup-gcloud@master
936997
- name: Run iOS integration tests on Real Device via FTL
998+
# max 3 retry and 10m timeout for each testapp, plus other steps
999+
timeout-minutes: 60
9371000
if: steps.get-device-type.outputs.device_type == 'real'
9381001
run: |
9391002
python scripts/gha/restore_secrets.py --passphrase "${{ secrets.TEST_SECRET }}"
@@ -990,6 +1053,9 @@ jobs:
9901053
matrix:
9911054
tvos_device: ${{ fromJson(needs.check_and_prepare.outputs.tvos_device) }}
9921055
steps:
1056+
- name: setup Xcode version (macos)
1057+
if: runner.os == 'macOS'
1058+
run: sudo xcode-select -s /Applications/Xcode_${{ fromJson(needs.check_and_prepare.outputs.xcode_version)[0] }}.app/Contents/Developer
9931059
- uses: actions/checkout@v2
9941060
with:
9951061
ref: ${{needs.check_and_prepare.outputs.github_ref}}
@@ -1003,7 +1069,11 @@ jobs:
10031069
with:
10041070
python-version: ${{ env.pythonVersion }}
10051071
- name: Install python deps
1006-
run: pip install -r scripts/gha/requirements.txt
1072+
uses: nick-invision/retry@v2
1073+
with:
1074+
timeout_minutes: 1
1075+
max_attempts: 3
1076+
command: pip install -r scripts/gha/requirements.txt
10071077
- name: Setup Firebase Emulators
10081078
run: |
10091079
npm install -g firebase-tools

0 commit comments

Comments
 (0)