Skip to content

Commit cd53491

Browse files
[ci] Initial migration to Cirrus Apple silicon
This adopts the new Apple silicon images for: - linting - macOS platform tests - iOS build-all This gives us build coverage across both architectures for both iOS and macOS. Ideally we would use ARM for iOS platform tests instead of build-all, but driving the iOS tests currently has flaky hangs on ARM. See flutter#5693 for details. Completing that part of the migration is left as a TODO.
1 parent f4ca732 commit cd53491

1 file changed

Lines changed: 39 additions & 19 deletions

File tree

.cirrus.yml

Lines changed: 39 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,17 @@ macos_template: &MACOS_TEMPLATE
5757
# Only one macOS task can run in parallel without credits, so use them for
5858
# PRs on macOS.
5959
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
60+
61+
macos_intel_template: &MACOS_INTEL_TEMPLATE
62+
<< : *MACOS_TEMPLATE
6063
osx_instance:
6164
image: big-sur-xcode-13
6265

66+
macos_arm_template: &MACOS_ARM_TEMPLATE
67+
<< : *MACOS_TEMPLATE
68+
macos_instance:
69+
image: ghcr.io/cirruslabs/macos-monterey-xcode:13.4
70+
6371
# Light-workload Linux tasks.
6472
# These use default machines, with fewer CPUs, to reduce pressure on the
6573
# concurrency limits.
@@ -298,7 +306,7 @@ task:
298306
drive_script:
299307
- ./script/tool_runner.sh drive-examples --web --exclude=script/configs/exclude_integration_web.yaml
300308

301-
# macOS tasks.
309+
# ARM macOS tasks.
302310
task:
303311
<< : *MACOS_TEMPLATE
304312
<< : *FLUTTER_UPGRADE_TEMPLATE
@@ -315,6 +323,34 @@ task:
315323
CHANNEL: "master"
316324
CHANNEL: "stable"
317325
<< : *BUILD_ALL_PLUGINS_APP_TEMPLATE
326+
### macOS desktop tasks ###
327+
- name: macos-platform_tests
328+
env:
329+
matrix:
330+
CHANNEL: "master"
331+
CHANNEL: "stable"
332+
PATH: $PATH:/usr/local/bin
333+
build_script:
334+
- flutter config --enable-macos-desktop
335+
- ./script/tool_runner.sh build-examples --macos
336+
xcode_analyze_script:
337+
- ./script/tool_runner.sh xcode-analyze --macos
338+
xcode_analyze_deprecation_script:
339+
# Ensure we don't accidentally introduce deprecated code.
340+
- ./script/tool_runner.sh xcode-analyze --macos --macos-min-version=12.3
341+
native_test_script:
342+
- ./script/tool_runner.sh native-test --macos
343+
drive_script:
344+
- ./script/tool_runner.sh drive-examples --macos --exclude=script/configs/exclude_integration_macos.yaml
345+
346+
# Intel macOS tasks.
347+
task:
348+
<< : *MACOS_INTEL_TEMPLATE
349+
<< : *FLUTTER_UPGRADE_TEMPLATE
350+
matrix:
351+
# TODO(stuartmorgan): Swap this and ios-build_all_plugins once simulator
352+
# tests are reliable on the ARM infrastructure. See discussion at
353+
# https://github.com/flutter/plugins/pull/5693#issuecomment-1126011089
318354
- name: ios-platform_tests
319355
env:
320356
PATH: $PATH:/usr/local/bin
@@ -345,6 +381,8 @@ task:
345381
# So we run `drive-examples` after `native-test`; changing the order will result ci failure.
346382
- ./script/tool_runner.sh drive-examples --ios --exclude=script/configs/exclude_integration_ios.yaml
347383
### macOS desktop tasks ###
384+
# macos-platform_tests builds all the plugins on M1, so this build is run
385+
# on Intel to give us build coverage of both host types.
348386
- name: macos-build_all_plugins
349387
env:
350388
BUILD_ALL_ARGS: "macos"
@@ -354,21 +392,3 @@ task:
354392
setup_script:
355393
- flutter config --enable-macos-desktop
356394
<< : *BUILD_ALL_PLUGINS_APP_TEMPLATE
357-
- name: macos-platform_tests
358-
env:
359-
matrix:
360-
CHANNEL: "master"
361-
CHANNEL: "stable"
362-
PATH: $PATH:/usr/local/bin
363-
build_script:
364-
- flutter config --enable-macos-desktop
365-
- ./script/tool_runner.sh build-examples --macos
366-
xcode_analyze_script:
367-
- ./script/tool_runner.sh xcode-analyze --macos
368-
xcode_analyze_deprecation_script:
369-
# Ensure we don't accidentally introduce deprecated code.
370-
- ./script/tool_runner.sh xcode-analyze --macos --macos-min-version=12.3
371-
native_test_script:
372-
- ./script/tool_runner.sh native-test --macos
373-
drive_script:
374-
- ./script/tool_runner.sh drive-examples --macos --exclude=script/configs/exclude_integration_macos.yaml

0 commit comments

Comments
 (0)