Skip to content

Commit aa9dee3

Browse files
jonsimantovfirebase-workflow-trigger-bot
and
firebase-workflow-trigger-bot
authored
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 <[email protected]>
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/[email protected]
@@ -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)