[Zephyr] Fix build issues with LTO (#34633) #163
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) 2022-2024 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: Build example - Telink | |
on: | |
push: | |
branches-ignore: | |
- 'dependabot/**' | |
pull_request: | |
merge_group: | |
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 | |
env: | |
CHIP_NO_LOG_TIMESTAMPS: true | |
jobs: | |
telink: | |
name: Telink | |
env: | |
BUILD_TYPE: telink | |
runs-on: ubuntu-latest | |
if: github.actor != 'restyled-io[bot]' | |
container: | |
image: ghcr.io/project-chip/chip-build-telink:66 | |
volumes: | |
- "/tmp/bloat_reports:/tmp/bloat_reports" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Checkout submodules & Bootstrap | |
uses: ./.github/actions/checkout-submodules-and-bootstrap | |
with: | |
platform: telink | |
- name: Set up environment for size reports | |
uses: ./.github/actions/setup-size-reports | |
if: ${{ !env.ACT }} | |
with: | |
gh-context: ${{ toJson(github) }} | |
# - name: Update Zephyr to specific revision (for developers purpose) | |
# run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py ab81a585fca6a83b30e1f4e58a021113d6a3acb8" | |
- name: Build example Telink (B92 retention) Air Quality Sensor App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-air-quality-sensor' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9528a_retention air-quality-sensor-app \ | |
out/telink-tlsr9528a_retention-air-quality-sensor/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (W91) All Clusters App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-all-clusters' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9118bdk40d all-clusters-app \ | |
out/telink-tlsr9118bdk40d-all-clusters/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B92) All Clusters Minimal App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9528a-all-clusters-minimal' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9528a all-clusters-minimal-app \ | |
out/telink-tlsr9528a-all-clusters-minimal/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B95) Bridge App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9258a-bridge' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9258a bridge-app \ | |
out/telink-tlsr9258a-bridge/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B92 retention) Contact Sensor App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-contact-sensor' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9528a_retention contact-sensor-app \ | |
out/telink-tlsr9528a_retention-contact-sensor/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build tools required for Factory Data | |
run: | | |
./scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform linux | |
./scripts/build/gn_gen.sh | |
./scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE chip-cert chip-tool spake2p" | |
mv ./out/$BUILD_TYPE/chip-cert ./out/$BUILD_TYPE/chip-tool ./out/$BUILD_TYPE/spake2p ./out | |
- name: clean out build output (keep tools) | |
run: rm -rf ./out/telink* | |
- name: Build example Telink (W91) Lighting App with OTA, Factory Data | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-light-ota-factory-data' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9118bdk40d lighting-app-ota-factory-data \ | |
out/telink-tlsr9118bdk40d-light-ota-factory-data/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output (keep tools) | |
run: rm -rf ./out/telink* | |
- name: Build example Telink (B91) Lighting App with OTA, RPC, Factory Data and 4Mb flash | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-light-ota-rpc-factory-data-4mb' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9518adk80d lighting-app-ota-rpc-factory-data-4mb \ | |
out/telink-tlsr9518adk80d-light-ota-rpc-factory-data-4mb/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output (keep tools) | |
run: rm -rf ./out/telink* | |
- name: Build example Telink (B92) Light Switch App with OTA, Shell, Factory Data | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9528a-light-switch-ota-shell-factory-data' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9528a light-switch-app-ota-shell-factory-data \ | |
out/telink-tlsr9528a-light-switch-ota-shell-factory-data/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B92) Lock App with DFU | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9528a-lock-dfu' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9528a lock-app-dfu \ | |
out/telink-tlsr9528a-lock-dfu/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B95) OTA Requestor App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9258a-ota-requestor' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9258a ota-requestor-app \ | |
out/telink-tlsr9258a-ota-requestor/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B91 USB) Pump App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump-usb' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9518adk80d pump-app-usb \ | |
out/telink-tlsr9518adk80d-pump-usb/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B91) Pump Controller App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump-controller' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9518adk80d pump-controller-app \ | |
out/telink-tlsr9518adk80d-pump-controller/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B91) Shell App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-shell' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9518adk80d shell \ | |
out/telink-tlsr9518adk80d-shell/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B92 retention) Smoke CO Alarm App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-smoke-co-alarm' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9528a_retention smoke_co_alarm-app \ | |
out/telink-tlsr9528a_retention-smoke-co-alarm/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B91 Mars) Temperature Measurement App with OTA | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-temperature-measurement-mars-ota' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9518adk80d temperature-measurement-app-mars-ota \ | |
out/telink-tlsr9518adk80d-temperature-measurement-mars-ota/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (B91) Thermostat App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-thermostat' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9518adk80d thermostat \ | |
out/telink-tlsr9518adk80d-thermostat/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Build example Telink (W91) Window Covering App | |
run: | | |
./scripts/run_in_build_env.sh \ | |
"./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-window-covering' build" | |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ | |
telink tlsr9118bdk40d window-covering \ | |
out/telink-tlsr9118bdk40d-window-covering/zephyr/zephyr.elf \ | |
/tmp/bloat_reports/ | |
- name: clean out build output | |
run: rm -rf ./out | |
- name: Uploading Size Reports | |
uses: ./.github/actions/upload-size-reports | |
if: ${{ !env.ACT }} | |
with: | |
platform-name: Telink |