| tasks: | |
| - name: prepare tool | |
| script: .ci/scripts/prepare_tool.sh | |
| infra_step: true # Note infra steps failing prevents "always" from running. | |
| - name: create simulator | |
| script: .ci/scripts/create_simulator.sh | |
| infra_step: true # Note infra steps failing prevents "always" from running. | |
| - name: download Dart and iOS deps | |
| script: .ci/scripts/tool_runner.sh | |
| args: ["fetch-deps", "--ios", "--supporting-target-platforms-only", "--swift-package-manager"] | |
| infra_step: true | |
| - name: build examples | |
| script: .ci/scripts/tool_runner.sh | |
| args: ["build-examples", "--ios", "--swift-package-manager"] | |
| - name: xcode analyze | |
| script: .ci/scripts/tool_runner.sh | |
| args: ["analyze", "--no-dart", "--ios", "--exclude=script/configs/xcode_warnings_exceptions.yaml"] | |
| - name: xcode analyze deprecation | |
| # Ensure we don't accidentally introduce deprecated code. | |
| script: .ci/scripts/tool_runner.sh | |
| args: ["analyze", "--no-dart", "--ios", "--ios-min-version=14.0", "--exclude=script/configs/exclude_xcode_deprecation.yaml,script/configs/xcode_warnings_exceptions.yaml"] | |
| - name: native test | |
| script: .ci/scripts/tool_runner.sh | |
| # Simulator name and version must match name and version in create_simulator.sh | |
| args: ["native-test", "--ios", "--ios-destination", "platform=iOS Simulator,name=Flutter-iPhone,OS=26.2", "--xcode-warnings-exceptions=script/configs/xcode_warnings_exceptions.yaml"] | |
| - name: boot simulator | |
| # Ensure simulator is still booted | |
| script: .ci/scripts/boot_simulator.sh | |
| infra_step: true # Note infra steps failing prevents "always" from running. | |
| - name: drive examples | |
| # `drive-examples` contains integration tests, which changes the UI of the application. | |
| # This UI change sometimes affects `xctest`. | |
| # So we run `drive-examples` after `native-test`; changing the order will result ci failure. | |
| script: .ci/scripts/tool_runner.sh | |
| args: ["drive-examples", "--ios", "--exclude=script/configs/exclude_integration_ios.yaml"] | |
| - name: remove simulator | |
| script: .ci/scripts/remove_simulator.sh | |
| always: true | |
| infra_step: true |