Skip to content

Commit aa9dee3

Browse files
jonsimantovfirebase-workflow-trigger-bot
andauthored
Update to Xcode 16.2. (#1715)
* Update Xcode version. * Update Xcode version in readme. * Update macos runner version. * Update macos runner version. * Update Java version. * Fix yaml files. * Tweak. * Fix openssl build for x86_64 Mac build. * Disable warning for deprecated declarations. * Update to Python 3.11. * Revert "Update to Python 3.11." This reverts commit a17e21c. * Update Python less. * Revert "Merge branch 'workflow/auto-update-deps-259-20250505-181050' into xcode_16" This reverts commit 8a1d6be, reversing changes made to 9821ba9. * Revert "Update Python less." This reverts commit 4992986. * Try Python 3.8. * Update matrices to make Mac builds occur on arm64. * Fix python architecture. * Don't use x86 arch on ubuntu. * Fix matrix specifier. * Fix architecture specifier. --------- Co-authored-by: firebase-workflow-trigger-bot <firebase-workflow-trigger-bot@google.com>
1 parent 735b43c commit aa9dee3

File tree

9 files changed

+92
-65
lines changed

9 files changed

+92
-65
lines changed

.github/workflows/android.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ on:
1313
env:
1414
CCACHE_DIR: ${{ github.workspace }}/ccache_dir
1515
GITHUB_TOKEN: ${{ github.token }}
16-
xcodeVersion: "14.1" # Only affects Mac runners, and only for prerequisites.
16+
xcodeVersion: "16.2" # Only affects Mac runners, and only for prerequisites.
1717

1818
concurrency:
1919
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref }}
@@ -50,6 +50,15 @@ jobs:
5050
os: ${{ fromJson(needs.prepare_matrix.outputs.matrix_os) }}
5151
architecture: ${{ fromJson(needs.prepare_matrix.outputs.matrix_architecture) }}
5252
python_version: ${{ fromJson(needs.prepare_matrix.outputs.matrix_python_version) }}
53+
exclude:
54+
# Do not attempt to use arm64 on Windows or Linux.
55+
- os: windows-latest
56+
architecture: arm64
57+
- os: ubuntu-22.04
58+
architecture: arm64
59+
# Do not attempt to use x64 on Mac.
60+
- os: macos-14
61+
architecture: x64
5362
steps:
5463
- uses: lukka/get-cmake@latest
5564
with:
@@ -58,8 +67,13 @@ jobs:
5867
if: runner.os == 'macOS'
5968
run: sudo xcode-select -s /Applications/Xcode_${{ env.xcodeVersion }}.app/Contents/Developer
6069
- name: Force Java 11
70+
if: runner.os != 'macOS'
6171
shell: bash
6272
run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV
73+
- name: Force Java 11 (mac)
74+
if: runner.os == 'macOS'
75+
shell: bash
76+
run: echo "JAVA_HOME=${JAVA_HOME_11_arm64}" >> $GITHUB_ENV
6377
- name: Store git credentials for all git commands
6478
# Forces all git commands to use authenticated https, to prevent throttling.
6579
shell: bash

.github/workflows/cpp-packaging.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ env:
3232
demumbleVer: "df938e45c2b0e064fb5323d88b692d03b451d271"
3333
# Use SHA256 for hashing files.
3434
hashCommand: "sha256sum"
35-
# Xcode version 15.1 is the version we build the SDK with.
35+
# Xcode version 16.2 is the version we build the SDK with.
3636
# Our MacOS runners will use the version in /Applications/Xcode_${xcodeVersion}.app
37-
xcodeVersion: "15.1"
37+
xcodeVersion: "16.2"
3838
# LLVM version with ARM MachO support has no version number yet.
3939
llvmVer: "5f187f0afaad33013ba03454c4749d99b1362534"
4040
GITHUB_TOKEN: ${{ github.token }}
@@ -79,13 +79,13 @@ jobs:
7979
if: ${{ github.event.inputs.downloadPublicVersion == '' && github.event.inputs.downloadPreviousRun == '' }}
8080
strategy:
8181
matrix:
82-
os: [ubuntu-22.04, macos-13]
82+
os: [ubuntu-22.04, macos-14]
8383
include:
8484
- os: ubuntu-22.04
8585
tools_platform: linux
8686
# Binutils 2.35.1 released Sep 19, 2020
8787
binutils_version: "2.35.1"
88-
- os: macos-13
88+
- os: macos-14
8989
tools_platform: darwin
9090
# Binutils 2.35.1 released Sep 19, 2020
9191
binutils_version: "2.35.1"
@@ -188,7 +188,7 @@ jobs:
188188

189189
build_and_package_ios_tvos:
190190
name: build-and-package-ios-tvos
191-
runs-on: macos-13
191+
runs-on: macos-14
192192
if: ${{ github.event.inputs.downloadPublicVersion == '' && github.event.inputs.downloadPreviousRun == '' }}
193193
steps:
194194
- uses: lukka/get-cmake@latest
@@ -317,7 +317,7 @@ jobs:
317317
strategy:
318318
fail-fast: false
319319
matrix:
320-
os: [windows-latest, ubuntu-22.04, macos-13]
320+
os: [windows-latest, ubuntu-22.04, macos-14]
321321
build_type: ["Release", "Debug"]
322322
architecture: ["x64", "x86", "arm64"]
323323
msvc_runtime: ["static", "dynamic"]
@@ -335,21 +335,21 @@ jobs:
335335
vcpkg_triplet_suffix: "linux"
336336
additional_build_flags: ""
337337
sdk_platform: "linux"
338-
- os: macos-13
338+
- os: macos-14
339339
vcpkg_triplet_suffix: "osx"
340340
additional_build_flags: "--target_format libraries"
341341
sdk_platform: "darwin"
342342

343343
exclude:
344344
- os: windows-latest
345345
linux_abi: "c++11"
346-
- os: macos-13
346+
- os: macos-14
347347
architecture: "x86"
348-
- os: macos-13
348+
- os: macos-14
349349
msvc_runtime: "dynamic"
350-
- os: macos-13
350+
- os: macos-14
351351
linux_abi: "c++11"
352-
- os: macos-13
352+
- os: macos-14
353353
build_type: "Debug"
354354
- os: ubuntu-22.04
355355
msvc_runtime: "dynamic"
@@ -504,7 +504,7 @@ jobs:
504504
suffix: '-x64-Debug-dynamic'
505505
runs_on_platform: ubuntu-22.04
506506
- sdk_platform: darwin
507-
runs_on_platform: macos-13
507+
runs_on_platform: macos-14
508508
exclude:
509509
- sdk_platform: windows
510510
suffix: ''

.github/workflows/desktop.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,13 @@ jobs:
7272
# msvc_runtime excludes
7373
- os: ubuntu-22.04
7474
msvc_runtime: "dynamic"
75-
- os: macos-13
75+
- os: macos-14
7676
msvc_runtime: "dynamic"
7777
# architecture excluees
78-
- os: macos-13
78+
- os: macos-14
7979
architecture: "x86"
80+
- os: macos-14
81+
architecture: "x64"
8082
# Xcode excludes -- allow only one on osx and linux
8183
- os: ubuntu-22.04
8284
xcode_version: "11.7"
@@ -168,9 +170,17 @@ jobs:
168170

169171
- name: Setup python
170172
uses: actions/setup-python@v4
173+
if: startsWith(matrix.os, 'ubuntu')
174+
with:
175+
python-version: ${{ matrix.python_version }}
176+
architecture: x64
177+
178+
- name: Setup python (Mac)
179+
uses: actions/setup-python@v4
180+
if: startsWith(matrix.os, 'macos')
171181
with:
172182
python-version: ${{ matrix.python_version }}
173-
architecture: 'x64'
183+
architecture: ${{ matrix.architecture }}
174184

175185
- name: Install Desktop SDK prerequisites
176186
uses: nick-invision/retry@v2

.github/workflows/integration_tests.yml

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ on:
2121
required: true
2222
operating_systems:
2323
description: 'CSV of VMs to run on'
24-
default: 'ubuntu-22.04,windows-latest,macos-13'
24+
default: 'ubuntu-22.04,windows-latest,macos-14'
2525
required: true
2626
desktop_ssl_variants:
2727
description: 'CSV of desktop SSL variants to use'
@@ -49,14 +49,9 @@ env:
4949
triggerLabelFull: "tests-requested: full"
5050
triggerLabelQuick: "tests-requested: quick"
5151
pythonVersion: '3.8'
52-
xcodeVersion: '15.1'
52+
xcodeVersion: '16.2'
5353
artifactRetentionDays: 2
5454
GITHUB_TOKEN: ${{ github.token }}
55-
# All self-hosted ARM Mac runners should have this label. Due to how
56-
# our custom reporting works, it must be exactly two words separated
57-
# by a hyphen. The first word must be "macos". The second word will
58-
# be omitted from the summary log.
59-
runnerLabelMacArm64: "macos-m1custom"
6055

6156
jobs:
6257
check_and_prepare:
@@ -77,8 +72,6 @@ jobs:
7772
xcode_version: ${{ steps.matrix_config.outputs.xcode_version }}
7873
ios_device: ${{ steps.matrix_config.outputs.ios_device }}
7974
tvos_device: ${{ steps.matrix_config.outputs.tvos_device }}
80-
# Copy the runner label here because matrix specifiers cannot see env.
81-
runner_label_macos_arm64: ${{ env.runnerLabelMacArm64 }}
8275
steps:
8376
### Fail the workflow if the user does not have admin access to run the tests.
8477
- name: Check if user has permission to trigger tests
@@ -206,7 +199,7 @@ jobs:
206199
# at 3am PST/4am PDT. Running firestore desktop integration test aginst tip-of-tree ios repo
207200
echo "::warning ::Running against Firestore tip-of-tree"
208201
matrix_platform="Desktop"
209-
matrix_os=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k os -o "ubuntu-22.04,macos-13")
202+
matrix_os=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k os -o "ubuntu-22.04,macos-14")
210203
else
211204
matrix_platform=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k platform -o "${{github.event.inputs.platforms}}" --apis ${apis} )
212205
matrix_os=$( python scripts/gha/print_matrix_configuration.py -w integration_tests ${TEST_MATRIX_PARAM} -k os -o "${{github.event.inputs.operating_systems}}")
@@ -273,18 +266,18 @@ jobs:
273266
- os: ubuntu-22.04
274267
arch: arm64
275268
# Do not attempt to use x86 on Mac.
276-
- os: macos-13
269+
- os: macos-14
277270
arch: x86
278271
# Until we support building openssl from source, we can't use the
279-
# system's openssl when cross-compiling, except on Linux. Builds all
280-
# happen on x64 machines, so arm64 and x86 are technically
281-
# cross-compiling.
272+
# system's openssl when cross-compiling, except on Linux. Builds on Linux
273+
# happen on x64 machines, so x86 is technically cross-compiling. Builds on
274+
# Mac happen on arm64 machines, so x64 is technically cross-compiling.
282275
- os: windows-latest
283276
ssl_variant: openssl
284277
arch: x86
285-
- os: macos-13
278+
- os: macos-14
286279
ssl_variant: openssl
287-
arch: arm64
280+
arch: x64
288281
steps:
289282
- uses: lukka/get-cmake@latest
290283
with:
@@ -435,8 +428,13 @@ jobs:
435428
ref: ${{needs.check_and_prepare.outputs.github_ref}}
436429
submodules: true
437430
- name: Force Java 11
431+
if: ${{ !(runner.os == 'macOS') }}
438432
shell: bash
439433
run: echo "JAVA_HOME=${JAVA_HOME_11_X64}" >> $GITHUB_ENV
434+
- name: Force Java 11 (mac)
435+
if: ${{ runner.os == 'macOS' }}
436+
shell: bash
437+
run: echo "JAVA_HOME=${JAVA_HOME_11_arm64}" >> $GITHUB_ENV
440438
- name: Add msbuild to PATH (Windows)
441439
if: startsWith(matrix.os, 'windows')
442440
uses: microsoft/setup-msbuild@v1.1
@@ -539,7 +537,7 @@ jobs:
539537
strategy:
540538
fail-fast: false
541539
matrix:
542-
os: [macos-13]
540+
os: [macos-14]
543541
steps:
544542
- uses: lukka/get-cmake@latest
545543
with:
@@ -647,7 +645,7 @@ jobs:
647645
strategy:
648646
fail-fast: false
649647
matrix:
650-
os: [macos-13]
648+
os: [macos-14]
651649
steps:
652650
- uses: lukka/get-cmake@latest
653651
with:
@@ -767,20 +765,18 @@ jobs:
767765
- os: ubuntu-22.04
768766
arch: arm64
769767
# Do not attempt to use x86 on Mac.
770-
- os: macos-13
768+
- os: macos-14
771769
arch: x86
772770
# Until we support building openssl from source, we can't use the
773-
# system's openssl when cross-compiling, except on Linux. Builds all
774-
# happen on x64 machines, so arm64 and x86 are technically
775-
# cross-compiling.
771+
# system's openssl when cross-compiling, except on Linux. Builds on Linux
772+
# happen on x64 machines, so x86 is technically cross-compiling. Builds on
773+
# Mac happen on arm64 machines, so x64 is technically cross-compiling.
776774
- os: windows-latest
777775
ssl_variant: openssl
778776
arch: x86
779-
# Custom for this matrix: MacOS GitHub-hosted runner cannot test arm64
780-
# code. Exclude that scenario from running here; it will run in
781-
# test_desktop_custom_runners.
782-
- os: macos-13
783-
arch: arm64
777+
- os: macos-14
778+
ssl_variant: openssl
779+
arch: x64
784780
steps:
785781
- uses: actions/checkout@v3
786782
with:
@@ -1010,7 +1006,7 @@ jobs:
10101006
test_ios:
10111007
name: test-ios-${{ matrix.build_os }}-${{ matrix.ios_device }}-${{ matrix.test_type }}
10121008
needs: [check_and_prepare, build_ios]
1013-
runs-on: macos-13
1009+
runs-on: macos-14
10141010
if: contains(needs.check_and_prepare.outputs.matrix_platform, 'iOS') && needs.check_and_prepare.outputs.apis != '' && !cancelled()
10151011
strategy:
10161012
fail-fast: false
@@ -1024,7 +1020,7 @@ jobs:
10241020
test_type: "uitest"
10251021
- ios_device: "ios_latest"
10261022
test_type: "uitest"
1027-
build_os: [macos-13]
1023+
build_os: [macos-14]
10281024
steps:
10291025
- uses: actions/checkout@v3
10301026
with:
@@ -1189,13 +1185,13 @@ jobs:
11891185
test_tvos:
11901186
name: test-tvos-${{ matrix.build_os }}-${{ matrix.tvos_device }}
11911187
needs: [check_and_prepare, build_tvos]
1192-
runs-on: macos-13
1188+
runs-on: macos-14
11931189
if: contains(needs.check_and_prepare.outputs.matrix_platform, 'tvOS') && needs.check_and_prepare.outputs.apis != '' && !cancelled()
11941190
strategy:
11951191
fail-fast: false
11961192
matrix:
11971193
tvos_device: ${{ fromJson(needs.check_and_prepare.outputs.tvos_device) }}
1198-
build_os: [macos-13]
1194+
build_os: [macos-14]
11991195
steps:
12001196
- uses: actions/checkout@v3
12011197
with:

.github/workflows/ios.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
strategy:
4242
fail-fast: false
4343
matrix:
44-
os: [ 'macos-13' ]
44+
os: [ 'macos-14' ]
4545
xcode_version: ${{ fromJson(needs.prepare_matrix.outputs.matrix_xcode_version) }}
4646
steps:
4747
- uses: lukka/get-cmake@latest
@@ -66,7 +66,7 @@ jobs:
6666
uses: actions/setup-python@v4
6767
with:
6868
python-version: 3.8
69-
architecture: "x64"
69+
architecture: "arm64"
7070

7171
- name: Install prerequisites
7272
run: |

.github/workflows/update-dependencies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ env:
3030
jobs:
3131
update_dependencies:
3232
name: update-deps
33-
runs-on: macos-13
33+
runs-on: macos-14
3434
steps:
3535
- name: Get token for firebase-workflow-trigger
3636
uses: tibdex/github-app-token@v1

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ if(APPLE)
157157
# build output for our Objective-C++ files much too verbose.
158158
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-nullability-completeness")
159159
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nullability-completeness")
160+
if(DESKTOP)
161+
# Mac desktop Firestore build requires -Wno-deprecated-declarations
162+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations")
163+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
164+
endif()
160165
endif()
161166

162167
if(DESKTOP AND NOT MSVC AND NOT APPLE)

release_build_files/readme.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ Firebase Cloud Messaging (stub) | firebase_messaging.framework
451451
User Messaging Platform (stub) | libfirebase_ump.a
452452
| | libfirebase_app.a
453453

454-
The provided libraries have been tested using Xcode 14.1. When building C++
454+
The provided libraries have been tested using Xcode 16.2. When building C++
455455
desktop apps on OS X, you will need to link the `gssapi_krb5` and `pthread`
456456
system libraries, as well as the `CoreFoundation`, `Foundation`, `GSS`, and
457457
`Security` OS X system frameworks (consult your compiler documentation for more
@@ -656,6 +656,8 @@ code.
656656
## Release Notes
657657
### 12.8.0
658658
- Changes
659+
- General (iOS, tvOS, Desktop): iOS, tvOS, and macOS SDKs are now built
660+
using Xcode 16.2.
659661
- UMP: Moved the User Messaging Platform SDK to its own top-level
660662
library and to the firebase::ump namespace. The version in the
661663
GMA library (in firebase::gma::ump) has been deprecated and will

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy