Compile fixes for CI for v1.1-branch #82868
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (c) 2020-2021 Project CHIP Authors | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
name: Darwin | |
on: | |
push: | |
pull_request: | |
merge_group: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
darwin: | |
name: Build Darwin | |
timeout-minutes: 210 | |
if: github.actor != 'restyled-io[bot]' | |
runs-on: macos-13 | |
steps: | |
- uses: Wandalen/[email protected] | |
name: Checkout | |
with: | |
action: actions/[email protected] | |
with: | | |
token: ${{ github.token }} | |
attempt_limit: 3 | |
attempt_delay: 2000 | |
- name: Checkout submodules | |
run: scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform darwin | |
- name: Setup Environment | |
run: brew install [email protected] | |
- name: Bootstrap cache | |
uses: actions/cache@v3 | |
timeout-minutes: 10 | |
with: | |
key: ${{ runner.os }}-env-${{ hashFiles('scripts/setup/*', 'third_party/pigweed/**') }} | |
path: | | |
.environment | |
build_overrides/pigweed_environment.gni | |
- name: Bootstrap | |
timeout-minutes: 25 | |
run: scripts/build/gn_bootstrap.sh | |
- name: Uploading bootstrap logs | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() && !env.ACT }} | |
with: | |
name: bootstrap-logs | |
path: | | |
.environment/gn_out/.ninja_log | |
.environment/pigweed-venv/*.log | |
- name: Block zap-cli from being used | |
# xcodebuild is NOT expected to require zap-cli | |
run: scripts/run_in_build_env.sh 'D=$(dirname $(which zap-cli)) && mv $D/zap-cli $D/zap-cli.moved' | |
- name: Validate zap-cli is NOT available | |
# run_in_build_env.sh is used to ensure PATH is set to something that would otherwise find zap-cli | |
run: scripts/run_in_build_env.sh '(zap-cli --version && exit 1) || exit 0' | |
- name: Run iOS Build Debug | |
timeout-minutes: 50 | |
working-directory: src/darwin/Framework | |
# For now disable unguarded-availability-new warnings because we | |
# internally use APIs that we are annotating as only available on | |
# new enough versions. Maybe we should change out deployment | |
# target versions instead? | |
run: xcodebuild -target "Matter" -sdk iphoneos OTHER_CFLAGS='${inherited} -Wno-unguarded-availability-new' | |
- name: Run iOS Build Release | |
timeout-minutes: 50 | |
working-directory: src/darwin/Framework | |
# For now disable unguarded-availability-new warnings because we | |
# internally use APIs that we are annotating as only available on | |
# new enough versions. Maybe we should change out deployment | |
# target versions instead? | |
run: xcodebuild -target "Matter" -sdk iphoneos -configuration Release OTHER_CFLAGS='${inherited} -Wno-unguarded-availability-new' | |
- name: Clean Build | |
run: xcodebuild clean | |
working-directory: src/darwin/Framework | |
- name: Delete Defaults | |
run: defaults delete com.apple.dt.xctest.tool | |
continue-on-error: true | |
- name: Run macOS Build | |
timeout-minutes: 70 | |
# Enable -Werror by hand here, because the Xcode config can't | |
# enable it for various reasons. Keep whatever Xcode settings | |
# for OTHER_CFLAGS exist by using ${inherited}. | |
# | |
# Enable -Wconversion by hand as well, because it seems to not be | |
# enabled by default in the Xcode config. | |
# | |
# Disable -Wunguarded-availability-new because we internally use | |
# APIs we added after our deployment target version. Maybe we | |
# should change the deployment target version instead? | |
run: xcodebuild -target "Matter" -sdk macosx OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-unguarded-availability-new' | |
working-directory: src/darwin/Framework | |
- name: Clean Build | |
run: xcodebuild clean | |
working-directory: src/darwin/Framework | |
- name: Make zap-cli work again | |
run: scripts/run_in_build_env.sh 'D=$(dirname $(which zap-cli.moved)) && mv $D/zap-cli.moved $D/zap-cli' | |
- name: Validate zap-cli is again available | |
run: scripts/run_in_build_env.sh 'zap-cli --version' | |
- name: Build example All Clusters Server | |
timeout-minutes: 15 | |
run: | | |
scripts/examples/gn_build_example.sh examples/all-clusters-app/linux out/debug chip_config_network_layer_ble=false | |
- name: Build example OTA Provider | |
timeout-minutes: 10 | |
run: | | |
scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false | |
- name: Build example OTA Requestor | |
timeout-minutes: 10 | |
run: | | |
scripts/examples/gn_build_example.sh examples/ota-requestor-app/linux out/debug chip_config_network_layer_ble=false non_spec_compliant_ota_action_delay_floor=0 | |
- name: Delete Defaults | |
run: defaults delete com.apple.dt.xctest.tool | |
continue-on-error: true | |
- name: Run Framework Tests | |
timeout-minutes: 20 | |
# For now disable unguarded-availability-new warnings because we | |
# internally use APIs that we are annotating as only available on | |
# new enough versions. Maybe we should change out deployment | |
# target versions instead? | |
run: | | |
mkdir -p /tmp/darwin/framework-tests | |
../../../out/debug/chip-all-clusters-app --interface-id -1 > >(tee /tmp/darwin/framework-tests/all-cluster-app.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-err.log >&2) & | |
# Make each ota-requestor is using a different port, discriminator, and KVS from | |
# all-clusters-app and from other requestors. | |
# | |
# And a different port from the test harness too; the test harness uses port 5541. | |
../../../out/debug/chip-ota-requestor-app --interface-id -1 --secured-device-port 5542 --discriminator 1111 --KVS /tmp/chip-ota-requestor-kvs1 --otaDownloadPath /tmp/chip-ota-requestor-downloaded-image1 --autoApplyImage > >(tee /tmp/darwin/framework-tests/ota-requestor-app-1.log) 2> >(tee /tmp/darwin/framework-tests/ota-requestor-app-err-1.log >&2) & | |
../../../out/debug/chip-ota-requestor-app --interface-id -1 --secured-device-port 5543 --discriminator 1112 --KVS /tmp/chip-ota-requestor-kvs2 --otaDownloadPath /tmp/chip-ota-requestor-downloaded-image2 --autoApplyImage > >(tee /tmp/darwin/framework-tests/ota-requestor-app-2.log) 2> >(tee /tmp/darwin/framework-tests/ota-requestor-app-err-2.log >&2) & | |
xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-incomplete-umbrella -Wno-unguarded-availability-new' > >(tee /tmp/darwin/framework-tests/darwin-tests.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-err.log >&2) | |
working-directory: src/darwin/Framework | |
- name: Uploading log files | |
uses: actions/upload-artifact@v3 | |
if: ${{ failure() && !env.ACT }} | |
with: | |
name: darwin-framework-test-logs | |
path: /tmp/darwin/framework-tests | |
retention-days: 5 |