From e3c045dd01c65300d04d8d12cba97c4a24bcdb62 Mon Sep 17 00:00:00 2001 From: cecille Date: Mon, 21 Oct 2024 09:42:18 -0400 Subject: [PATCH] let's just run the one, ya? --- .github/workflows/artifacts.yaml | 17 - .github/workflows/bloat_check.yaml | 53 -- .github/workflows/build-cert-bins.yaml | 21 - .github/workflows/build.yaml | 509 -------------- .github/workflows/buildjet-cache-delete.yaml | 17 - .../workflows/cancel_workflows_for_pr.yaml | 52 -- .../check-data-model-directory-updates.yaml | 31 - .github/workflows/chef.yaml | 118 ---- .github/workflows/cherry-picks.yaml | 37 -- .github/workflows/cirque.yaml | 137 ---- .github/workflows/codeql.yml | 29 - .github/workflows/darwin-tests.yaml | 166 ----- .github/workflows/darwin.yaml | 134 ---- .github/workflows/docbuild.yaml | 54 -- .github/workflows/docker_img.yaml | 171 ----- .github/workflows/doxygen.yaml | 110 --- .../workflows/example-tv-casting-darwin.yaml | 50 -- .github/workflows/examples-ameba.yaml | 61 -- .github/workflows/examples-asr.yaml | 66 -- .github/workflows/examples-bouffalolab.yaml | 123 ---- .github/workflows/examples-cc13xx_26xx.yaml | 101 --- .github/workflows/examples-cc32xx.yaml | 85 --- .github/workflows/examples-efr32.yaml | 137 ---- .github/workflows/examples-esp32.yaml | 173 ----- .github/workflows/examples-infineon.yaml | 227 ------- .github/workflows/examples-linux-arm.yaml | 91 --- .github/workflows/examples-linux-imx.yaml | 97 --- .../workflows/examples-linux-standalone.yaml | 226 ------- .../examples-linux-tv-casting-app.yaml | 90 --- .github/workflows/examples-mw320.yaml | 72 -- .github/workflows/examples-nrfconnect.yaml | 212 ------ .github/workflows/examples-nuttx.yaml | 58 -- .github/workflows/examples-nxp.yaml | 269 -------- .github/workflows/examples-openiotsdk.yaml | 216 ------ .github/workflows/examples-qpg.yaml | 90 --- .github/workflows/examples-stm32.yaml | 80 --- .github/workflows/examples-telink.yaml | 314 --------- .github/workflows/examples-tizen.yaml | 87 --- .github/workflows/full-android.yaml | 118 ---- .github/workflows/fuzzing-build.yaml | 101 --- .../workflows/gradle-wrapper-validation.yml | 21 - .github/workflows/issue-labeler.yaml | 20 - .github/workflows/java-tests.yaml | 309 --------- .github/workflows/kotlin-style.yaml | 70 -- .github/workflows/labeler.yaml | 15 - .github/workflows/lint.yml | 348 ---------- .github/workflows/minimal-build.yaml | 72 -- .github/workflows/protocol_compatibility.yaml | 49 -- .github/workflows/qemu.yaml | 101 --- .github/workflows/recent_fail_summary.yaml | 58 -- .github/workflows/release_artifacts.yaml | 89 --- .github/workflows/restyled.yml | 35 - .github/workflows/roll_and_build_docker.yaml | 15 - .github/workflows/smoketest-android.yaml | 82 --- .github/workflows/spell.yml | 37 -- .github/workflows/stale.yaml | 32 - .github/workflows/tag-releases.yaml | 52 -- .github/workflows/tests.yaml | 629 ------------------ .github/workflows/third-party-check.yaml | 39 -- .github/workflows/todos.yaml | 38 -- .github/workflows/unit_integration_test.yaml | 89 --- .github/workflows/zap_regeneration.yaml | 54 -- .github/workflows/zap_templates.yaml | 76 --- 63 files changed, 7130 deletions(-) delete mode 100644 .github/workflows/artifacts.yaml delete mode 100644 .github/workflows/bloat_check.yaml delete mode 100644 .github/workflows/build-cert-bins.yaml delete mode 100644 .github/workflows/build.yaml delete mode 100644 .github/workflows/buildjet-cache-delete.yaml delete mode 100644 .github/workflows/cancel_workflows_for_pr.yaml delete mode 100644 .github/workflows/check-data-model-directory-updates.yaml delete mode 100644 .github/workflows/chef.yaml delete mode 100644 .github/workflows/cherry-picks.yaml delete mode 100644 .github/workflows/cirque.yaml delete mode 100644 .github/workflows/codeql.yml delete mode 100644 .github/workflows/darwin-tests.yaml delete mode 100644 .github/workflows/darwin.yaml delete mode 100644 .github/workflows/docbuild.yaml delete mode 100644 .github/workflows/docker_img.yaml delete mode 100644 .github/workflows/doxygen.yaml delete mode 100644 .github/workflows/example-tv-casting-darwin.yaml delete mode 100644 .github/workflows/examples-ameba.yaml delete mode 100644 .github/workflows/examples-asr.yaml delete mode 100644 .github/workflows/examples-bouffalolab.yaml delete mode 100644 .github/workflows/examples-cc13xx_26xx.yaml delete mode 100644 .github/workflows/examples-cc32xx.yaml delete mode 100644 .github/workflows/examples-efr32.yaml delete mode 100644 .github/workflows/examples-esp32.yaml delete mode 100644 .github/workflows/examples-infineon.yaml delete mode 100644 .github/workflows/examples-linux-arm.yaml delete mode 100644 .github/workflows/examples-linux-imx.yaml delete mode 100644 .github/workflows/examples-linux-standalone.yaml delete mode 100644 .github/workflows/examples-linux-tv-casting-app.yaml delete mode 100644 .github/workflows/examples-mw320.yaml delete mode 100644 .github/workflows/examples-nrfconnect.yaml delete mode 100644 .github/workflows/examples-nuttx.yaml delete mode 100644 .github/workflows/examples-nxp.yaml delete mode 100644 .github/workflows/examples-openiotsdk.yaml delete mode 100644 .github/workflows/examples-qpg.yaml delete mode 100644 .github/workflows/examples-stm32.yaml delete mode 100644 .github/workflows/examples-telink.yaml delete mode 100644 .github/workflows/examples-tizen.yaml delete mode 100644 .github/workflows/full-android.yaml delete mode 100644 .github/workflows/fuzzing-build.yaml delete mode 100644 .github/workflows/gradle-wrapper-validation.yml delete mode 100644 .github/workflows/issue-labeler.yaml delete mode 100644 .github/workflows/java-tests.yaml delete mode 100644 .github/workflows/kotlin-style.yaml delete mode 100644 .github/workflows/labeler.yaml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .github/workflows/minimal-build.yaml delete mode 100644 .github/workflows/protocol_compatibility.yaml delete mode 100644 .github/workflows/qemu.yaml delete mode 100644 .github/workflows/recent_fail_summary.yaml delete mode 100644 .github/workflows/release_artifacts.yaml delete mode 100644 .github/workflows/restyled.yml delete mode 100644 .github/workflows/roll_and_build_docker.yaml delete mode 100644 .github/workflows/smoketest-android.yaml delete mode 100644 .github/workflows/spell.yml delete mode 100644 .github/workflows/stale.yaml delete mode 100644 .github/workflows/tag-releases.yaml delete mode 100644 .github/workflows/tests.yaml delete mode 100644 .github/workflows/third-party-check.yaml delete mode 100644 .github/workflows/todos.yaml delete mode 100644 .github/workflows/unit_integration_test.yaml delete mode 100644 .github/workflows/zap_regeneration.yaml delete mode 100644 .github/workflows/zap_templates.yaml diff --git a/.github/workflows/artifacts.yaml b/.github/workflows/artifacts.yaml deleted file mode 100644 index 002d945ebc0f09..00000000000000 --- a/.github/workflows/artifacts.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: 'Delete old artifacts' -on: - schedule: - - cron: '0 * * * *' # every hour - -concurrency: - group: ${{ github.workflow }} - cancel-in-progress: true - -jobs: - delete-artifacts: - runs-on: ubuntu-latest - steps: - - uses: kolpav/purge-artifacts-action@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - expire-in: 14days diff --git a/.github/workflows/bloat_check.yaml b/.github/workflows/bloat_check.yaml deleted file mode 100644 index 7ec2a6bf692011..00000000000000 --- a/.github/workflows/bloat_check.yaml +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright (c) 2020 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: Bloat Check -on: - workflow_dispatch: - schedule: - - cron: "*/5 * * * *" - -concurrency: - group: ${{ github.workflow }} - # Don't cancel an already-running bloat check just because it took more - # than 5 minutes to run and our cron job is trying to schedule a new one. - cancel-in-progress: false - -jobs: - pull_request_update: - name: Report on pull requests - - # Don't run on forked repos - if: github.repository_owner == 'project-chip' - - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Report - run: | - scripts/tools/memory/gh_report.py \ - --verbose \ - --report-increases 0.2 \ - --report-pr \ - --github-comment \ - --github-limit-artifact-pages 50 \ - --github-limit-artifacts 500 \ - --github-limit-comments 20 \ - --github-repository project-chip/connectedhomeip \ - --github-api-token "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/build-cert-bins.yaml b/.github/workflows/build-cert-bins.yaml deleted file mode 100644 index 52c274193b4fc1..00000000000000 --- a/.github/workflows/build-cert-bins.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: Build Certification Image -on: - workflow_call: - workflow_dispatch: -jobs: - build-cert-bin: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Publish to Registry - uses: elgohr/Publish-Docker-Github-Action@v5 - with: - name: ghcr.io/project-chip/chip-cert-bins - tags: latest - dockerfile: ./integrations/docker/images/chip-cert-bins/Dockerfile - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - registry: ghcr.io - platforms: linux/amd64,linux/arm64,linux/arm diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index af102bf96ea5b8..00000000000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,509 +0,0 @@ -# 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: Builds - -on: - push: - branches: - - master - - 'v*-branch' - pull_request: - merge_group: - workflow_dispatch: - workflow_call: - inputs: - run-codeql: - required: false - type: boolean - -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: - build_linux_gcc_debug: - name: Build on Linux (gcc_debug) - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/:/runner-root-volume" - - "/tmp/log_output:/tmp/test_logs" - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJSON(github) }} - run: echo "$GITHUB_CONTEXT" - - name: Dump Concurrency context - env: - CONCURRENCY_CONTEXT: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} - run: echo "$CONCURRENCY_CONTEXT" - - name: Checkout - uses: actions/checkout@v4 - - name: Try to ensure the directories for core dumping exist and we - can write them. - run: | - mkdir /tmp/cores || true - sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - name: Initialize CodeQL - if: ${{ inputs.run-codeql }} - uses: github/codeql-action/init@v3 - with: - languages: "cpp" - - name: Setup Build - run: scripts/build/gn_gen.sh --args="chip_config_memory_debug_checks=true chip_config_memory_debug_dmalloc=false chip_data_model_check_die_on_failure=true" - - name: Run Build - run: scripts/run_in_build_env.sh "ninja -C ./out" - - name: Run Tests - run: scripts/tests/gn_tests.sh - # TODO Log Upload https://github.com/project-chip/connectedhomeip/issues/2227 - # TODO https://github.com/project-chip/connectedhomeip/issues/1512 - # - name: Run Code Coverage - # if: ${{ contains('main', env.BUILD_TYPE) }} - # run: scripts/tools/codecoverage.sh - # - name: Upload Code Coverage - # if: ${{ contains('main', env.BUILD_TYPE) }} - # run: bash <(curl -s https://codecov.io/bash) - - name: Set up Build Without Detail Logging - run: scripts/build/gn_gen.sh --args="chip_detail_logging=false" - - name: Run Build Without Detail Logging - run: scripts/run_in_build_env.sh "ninja -C ./out" - - name: Set up Build Without Progress Logging - run: scripts/build/gn_gen.sh --args="chip_detail_logging=false chip_progress_logging=false" - - name: Run Build Without Progress Logging - run: scripts/run_in_build_env.sh "ninja -C ./out" - - name: Set up Build Without Error Logging - run: scripts/build/gn_gen.sh --args="chip_detail_logging=false chip_progress_logging=false chip_error_logging=false" - - name: Run Build Without Error Logging - run: scripts/run_in_build_env.sh "ninja -C ./out" - - name: Set up Build Without Logging - run: scripts/build/gn_gen.sh --args="chip_logging=false" - - name: Run Build Without Logging - run: scripts/run_in_build_env.sh "ninja -C ./out" - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-linux-gcc-debug - path: /tmp/cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Perform CodeQL Analysis - if: ${{ inputs.run-codeql }} - uses: ./.github/actions/perform-codeql-analysis - with: - language: cpp - # OBJDIR on linux is > 10K files and takes more than 50 minutes to upload, usually - # having the job timeout. - # - # If re-enabling, some subset of this should be picked - # - # - name: Uploading objdir for debugging - # uses: actions/upload-artifact@v4 - # if: ${{ failure() && !env.ACT }} - # with: - # name: crash-objdir-linux-gcc-debug - # path: out/ - # # objdirs are big; don't hold on to them too long. - # retention-days: 5 - - build_linux: - name: Build on Linux (fake, gcc_release, clang, simulated) - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/:/runner-root-volume" - - "/tmp/log_output:/tmp/test_logs" - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJSON(github) }} - run: echo "$GITHUB_CONTEXT" - - name: Dump Concurrency context - env: - CONCURRENCY_CONTEXT: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} - run: echo "$CONCURRENCY_CONTEXT" - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 - persist-credentials: true - - name: Try to ensure the directories for core dumping exist and we - can write them. - run: | - mkdir /tmp/cores || true - sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - name: Initialize CodeQL - if: ${{ inputs.run-codeql }} - uses: github/codeql-action/init@v3 - with: - languages: "cpp" - - name: Setup and Build Simulated Device - run: | - BUILD_TYPE=simulated - GN_ARGS='chip_tests_zap_config="app1" chip_project_config_include_dirs=["../../examples/placeholder/linux/apps/app1/include", "../../config/standalone"] chip_config_network_layer_ble=false' - CHIP_ROOT_PATH=examples/placeholder/linux - CHIP_ROOT_PATH="$CHIP_ROOT_PATH" BUILD_TYPE="$BUILD_TYPE" scripts/build/gn_gen.sh --args="$GN_ARGS" - scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE" - - name: Setup Build, Run Build and Run Tests - run: | - BUILD_TYPE=gcc_release scripts/build/gn_gen.sh --args="is_debug=false chip_data_model_check_die_on_failure=true" - scripts/run_in_build_env.sh "ninja -C ./out/gcc_release" - BUILD_TYPE=gcc_release scripts/tests/gn_tests.sh - - name: Clean output - run: rm -rf ./out - - name: Run Tests with sanitizers - # Sanitizer tests are not likely to find extra issues so running the same tests - # as above repeatedly on every pull request seems extra time. Instead keep this run - # for master only - if: github.event.pull_request.number == null - env: - LSAN_OPTIONS: detect_leaks=1 - run: | - for BUILD_TYPE in asan tsan ubsan; do - case $BUILD_TYPE in - "asan") GN_ARGS='is_clang=true is_asan=true';; - "msan") GN_ARGS='is_clang=true is_msan=true';; - "tsan") GN_ARGS='is_clang=true is_tsan=true chip_enable_wifi=false';; - "ubsan") GN_ARGS='is_clang=true is_ubsan=true';; - esac - - rm -rf ./out/sanitizers - BUILD_TYPE=sanitizers scripts/build/gn_gen.sh --args="$GN_ARGS chip_data_model_check_die_on_failure=true" --export-compile-commands - BUILD_TYPE=sanitizers scripts/tests/gn_tests.sh - done - - name: Generate tests with sanitizers (for tidy) - if: github.event.pull_request.number != null - run: | - rm -rf ./out/sanitizers - BUILD_TYPE=sanitizers scripts/build/gn_gen.sh --args="is_clang=true is_asan=true chip_data_model_check_die_on_failure=true" --export-compile-commands - - name: Ensure codegen is done for sanitize - run: | - ./scripts/run_in_build_env.sh "./scripts/run_codegen_targets.sh out/sanitizers" - - name: Find changed files - id: changed-files - uses: tj-actions/changed-files@v45 - - name: Clang-tidy validation - # NOTE: clang-tidy crashes on CodegenDataModel_Write due to Nullable/std::optional check. - # See https://github.com/llvm/llvm-project/issues/97426 - env: - ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} - run: | - touch out/changed_files.txt - for file in ${ALL_CHANGED_FILES}; do - echo "$file changed and will be considered for tidy" - echo "$file" >>out/changed_files.txt - done - - ./scripts/run_in_build_env.sh \ - "./scripts/run-clang-tidy-on-compile-commands.py \ - --compile-database out/sanitizers/compile_commands.json \ - --file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|-ReadImpl|-InvokeSubscribeImpl|CodegenDataModel_Write|QuieterReporting' \ - --file-list-file out/changed_files.txt \ - check \ - " - - name: Clean output - run: rm -rf ./out - - name: Build using build_examples.py - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-minmdns-ipv6only-clang \ - --target linux-x64-rpc-console \ - build \ - " - - name: Create a pre-generate directory and ensure compile-time codegen would fail - run: | - ./scripts/run_in_build_env.sh "./scripts/codepregen.py ./zzz_pregenerated" - mv scripts/codegen.py scripts/codegen.py.renamed - mv scripts/tools/zap/generate.py scripts/tools/zap/generate.py.renamed - - name: Clean output - run: rm -rf ./out - - name: Build using build_examples.py (pregen) - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-all-clusters-ipv6only-clang \ - --target linux-x64-chip-tool-ipv6only-clang \ - --pregen-dir ./zzz_pregenerated \ - build \ - " - - name: Undo code pre-generation changes (make compile time codegen work again) - run: | - rm -rf ./zzz_pregenerated - mv scripts/codegen.py.renamed scripts/codegen.py - mv scripts/tools/zap/generate.py.renamed scripts/tools/zap/generate.py - - name: Run fake linux tests with build_examples - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target linux-fake-tests build" - - name: Perform CodeQL Analysis - if: ${{ inputs.run-codeql }} - uses: ./.github/actions/perform-codeql-analysis - with: - language: cpp - - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-linux - path: /tmp/cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - # OBJDIR on linux is > 10K files and takes more than 50 minutes to upload, usually - # having the job timeout. - # - # If re-enabling, some subset of this should be picked - # - # - name: Uploading objdir for debugging - # uses: actions/upload-artifact@v4 - # if: ${{ failure() && !env.ACT }} - # with: - # name: crash-objdir-linux - # path: out/ - # # objdirs are big; don't hold on to them too long. - # retention-days: 5 - - build_linux_python_lib: - name: Build on Linux (python_lib) - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/:/runner-root-volume" - - "/tmp/log_output:/tmp/test_logs" - options: --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJSON(github) }} - run: echo "$GITHUB_CONTEXT" - - name: Dump Concurrency context - env: - CONCURRENCY_CONTEXT: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} - run: echo "$CONCURRENCY_CONTEXT" - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Setup Build, Run Build and Run Tests - run: | - scripts/build/gn_gen.sh --args="enable_rtti=true chip_config_memory_debug_checks=false chip_config_memory_debug_dmalloc=false chip_generate_link_map_file=false chip_data_model_check_die_on_failure=true" - scripts/run_in_build_env.sh "ninja -C ./out" - scripts/tests/gn_tests.sh - - name: Setup test python environment - shell: bash - run: | - scripts/run_in_build_env.sh 'virtualenv pyenv' - source pyenv/bin/activate - python -m ensurepip --upgrade - python -m pip install ./out/controller/python/chip_core-0.0-cp37-abi3-linux_x86_64.whl - python -m pip install ./out/controller/python/chip_clusters-0.0-py3-none-any.whl - python -m pip install ./out/controller/python/chip_repl-0.0-py3-none-any.whl - - - name: Run Python tests - shell: bash - run: | - source pyenv/bin/activate - cd src/controller/python/test/unit_tests/ - python3 -m unittest -v - - name: Clean previous outputs - run: rm -rf out pyenv - - name: Run Python Setup Payload Generator Test - shell: bash - run: | - scripts/run_in_build_env.sh 'scripts/examples/gn_build_example.sh examples/chip-tool out/' - scripts/run_in_build_env.sh 'virtualenv pyenv' - source pyenv/bin/activate - python -m ensurepip --upgrade - python -m pip install -r scripts/setup/requirements.setuppayload.txt - python3 src/setup_payload/tests/run_python_setup_payload_test.py out/chip-tool - - build_linux_python_lighting_device: - name: Build on Linux (python lighting-app) - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/:/runner-root-volume" - - "/tmp/log_output:/tmp/test_logs" - options: --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJSON(github) }} - run: echo "$GITHUB_CONTEXT" - - name: Dump Concurrency context - env: - CONCURRENCY_CONTEXT: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} - run: echo "$CONCURRENCY_CONTEXT" - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Setup Build - run: | - scripts/build_python_device.sh --chip_detail_logging true - - build_darwin: - name: Build on Darwin (clang, simulated) - runs-on: macos-13 - if: github.actor != 'restyled-io[bot]' - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 - persist-credentials: true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - - name: Try to ensure the directory for diagnostic log collection exists - run: | - mkdir -p ~/Library/Logs/DiagnosticReports || true - - name: Initialize CodeQL - if: ${{ inputs.run-codeql }} - uses: github/codeql-action/init@v3 - with: - languages: "cpp" - - - name: Setup and Build Simulated Device - run: | - BUILD_TYPE=simulated - GN_ARGS='chip_tests_zap_config="app1" chip_project_config_include_dirs=["../../examples/placeholder/linux/apps/app1/include", "../../config/standalone"] chip_config_network_layer_ble=false' - CHIP_ROOT_PATH=examples/placeholder/linux - CHIP_ROOT_PATH="$CHIP_ROOT_PATH" BUILD_TYPE="$BUILD_TYPE" scripts/build/gn_gen.sh --args="$GN_ARGS" - scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE" - - name: Setup Build, Run Build and Run Tests (asan + target_os=all) - # We can't enable leak checking here in LSAN_OPTIONS, because on - # Darwin that's only supported with a new enough clang, and we're - # not building with the pigweed clang here. - env: - BUILD_TYPE: default - run: | - # We want to build various standalone example apps (similar to what examples-linux-standalone.yaml - # does), so use target_os="all" to get those picked up as part of the "unified" build. But then - # to save CI resources we want to exclude the "host clang" build, which uses the pigweed clang. - scripts/build/gn_gen.sh --args='target_os="all" is_asan=true enable_host_clang_build=false chip_data_model_check_die_on_failure=true' --export-compile-commands - scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE" - scripts/tests/gn_tests.sh - - name: Ensure codegen is done for default - run: | - ./scripts/run_in_build_env.sh "./scripts/run_codegen_targets.sh out/default" - - name: Find changed files - id: changed-files - uses: tj-actions/changed-files@v45 - - name: Clang-tidy validation - # NOTE: clang-tidy crashes on CodegenDataModel_Write due to Nullable/std::optional check. - # See https://github.com/llvm/llvm-project/issues/97426 - env: - ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} - run: | - touch out/changed_files.txt - for file in ${ALL_CHANGED_FILES}; do - echo "$file changed and will be considered for tidy" - echo "$file" >>out/changed_files.txt - done - - ./scripts/run_in_build_env.sh \ - "./scripts/run-clang-tidy-on-compile-commands.py \ - --compile-database out/default/compile_commands.json \ - --file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|CodegenDataModel_Write|QuieterReporting' \ - --file-list-file out/changed_files.txt \ - check \ - " - - name: Uploading diagnostic logs - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-log-darwin - path: ~/Library/Logs/DiagnosticReports/ - - - name: Perform CodeQL Analysis - if: ${{ inputs.run-codeql }} - uses: ./.github/actions/perform-codeql-analysis - with: - language: cpp - - # TODO Log Upload https://github.com/project-chip/connectedhomeip/issues/2227 - # TODO https://github.com/project-chip/connectedhomeip/issues/1512 - - build_linux_gcc_coverage: - name: Build on Linux (coverage) - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/:/runner-root-volume" - - "/tmp/log_output:/tmp/test_logs" - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Run Build Coverage - run: ./scripts/build_coverage.sh diff --git a/.github/workflows/buildjet-cache-delete.yaml b/.github/workflows/buildjet-cache-delete.yaml deleted file mode 100644 index f5c4e0668b1aed..00000000000000 --- a/.github/workflows/buildjet-cache-delete.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: Manually Delete BuildJet Cache -on: - workflow_dispatch: - inputs: - cache_key: - description: 'BuildJet Cache Key to Delete' - required: true - type: string -jobs: - manually-delete-buildjet-cache: - runs-on: buildjet-2vcpu-ubuntu-2204 - steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: buildjet/cache-delete@v1 - with: - cache_key: ${{ inputs.cache_key }} \ No newline at end of file diff --git a/.github/workflows/cancel_workflows_for_pr.yaml b/.github/workflows/cancel_workflows_for_pr.yaml deleted file mode 100644 index caba07bedff6fa..00000000000000 --- a/.github/workflows/cancel_workflows_for_pr.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (c) 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: Cancel workflows on failing CI -on: - workflow_dispatch: - schedule: - - cron: "*/10 * * * *" - -jobs: - cancel_workflow: - name: Cancel CI on failing pull requests - - runs-on: ubuntu-latest - - # Don't run on forked repos - if: github.repository_owner == 'project-chip' - - steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - name: Setup pip modules we use - run: | - pip install \ - click \ - coloredlogs \ - python-dateutil \ - pygithub \ - && echo "DONE installint python prerequisites" - - name: Cancel runs - run: | - scripts/tools/cancel_workflows_for_pr.py \ - --gh-api-token "${{ secrets.GITHUB_TOKEN }}" \ - --require "Restyled" \ - --require "Lint Code Base" \ - --require "ZAP" \ - --require "Run misspell" \ - --max-pr-age-minutes 20 diff --git a/.github/workflows/check-data-model-directory-updates.yaml b/.github/workflows/check-data-model-directory-updates.yaml deleted file mode 100644 index 305da81d9da817..00000000000000 --- a/.github/workflows/check-data-model-directory-updates.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (c) 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: Check for changes to data_model directory without a sha update - -on: - pull_request: - paths: - - "data_model/**" - -jobs: - check-submodule-update-label: - name: Check for changes to data_model directory without a sha update - runs-on: ubuntu-latest - if: "git diff --name-only HEAD^..HEAD data_model/ | grep -q spec_sha" - steps: - - name: Error Message - run: echo This pull request attempts to update data_model directory, but is missing updates to spec_sha file with the latest version of the sha. Files in the data_model directory are generated automatically and should not be updated manually. - - name: Fail Job - run: exit 1 diff --git a/.github/workflows/chef.yaml b/.github/workflows/chef.yaml deleted file mode 100644 index a1e5907cb91a70..00000000000000 --- a/.github/workflows/chef.yaml +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 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: Build Chef CI examples on all platforms - -on: - push: - branches: - - master - - 'v*-branch' - 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: - chef_linux: - name: Chef - Linux CI Examples - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - options: --user root - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - name: CI Examples Linux - shell: bash - run: | - ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t linux" - - chef_esp32: - name: Chef - ESP32 CI Examples - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-esp32:81 - options: --user root - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: esp32 - - name: CI Examples ESP32 - shell: bash - run: | - ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t esp32" - - chef_nrfconnect: - name: Chef - NRFConnect CI Examples - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-nrf-platform:81 - options: --user root - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: nrfconnect - - name: CI Examples NRFConnect - shell: bash - run: | - ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t nrfconnect" - - chef_telink: - name: Chef - Telink CI Examples - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-telink:81 - options: --user root - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: telink - # - name: Update Zephyr to specific revision (for developers purpose) - # shell: bash - # run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 3ed7686a9378de6be1368c912f9a42f998bbfb18" - - name: CI Examples Telink - shell: bash - run: | - ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t telink" diff --git a/.github/workflows/cherry-picks.yaml b/.github/workflows/cherry-picks.yaml deleted file mode 100644 index a062aa5fcf9b87..00000000000000 --- a/.github/workflows/cherry-picks.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: Cherry-Pick Merges - -on: - pull_request_target: - branches: - - master - types: ["closed"] - -jobs: - cherry_pick_release_v1_0: - runs-on: ubuntu-latest - name: Cherry-Pick into SVE - if: | - (github.event.pull_request.merged == true) - && ( - (contains(github.event.pull_request.labels.*.name, 'sve')) - || (contains(github.event.pull_request.labels.*.name, 'request sve')) - || (contains(github.event.pull_request.labels.*.name, 'cert blocker')) - ) - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Cherry-Pick into sve branch - uses: carloscastrojumo/github-cherry-pick-action@v1.0.9 - with: - token: ${{ secrets.MATTER_PAT }} - branch: 1.3-sve - labels: | - sve cherry pick - reviewers: | - woody-apple - andy31415 - raju-apple -env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/cirque.yaml b/.github/workflows/cirque.yaml deleted file mode 100644 index 083b35062990e6..00000000000000 --- a/.github/workflows/cirque.yaml +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright (c) 2020-2023 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: Cirque - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - cirque: - name: Cirque - - env: - GITHUB_CACHE_PATH: /tmp/cirque-cache - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - # need to run with privilege, which isn't supported by job.XXX.contaner - # https://github.com/actions/container-action/issues/2 - # container: - # image: ghcr.io/project-chip/chip-build-cirque: - # volumes: - # - "/tmp:/tmp" - # - "/dev/pts:/dev/pts" - # env: - # LOG_DIR: /tmp/cirque_test_output/ - # CLEANUP_DOCKER_FOR_CI: 1 - # options: "--privileged" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules - uses: ./.github/actions/checkout-submodules - with: - platform: linux - - # TODO: Is what's being cached here actually compatible with a regular bootstrap? - - name: Bootstrap Cache - uses: ./.github/actions/bootstrap-cache - - name: Bootstrap Cirque - run: | - integrations/docker/images/stage-2/chip-build-cirque/run.sh \ - -- sh -c " \ - git config --global --add safe.directory '*' \ - && bash scripts/bootstrap.sh \ - && chown -R $(id -u):$(id -g) .environment \ - " - - - name: Get Cirque Bootstrap cache key - id: cirque-bootstrap-cache-key - run: echo "val=$(scripts/tests/cirque_tests.sh cachekeyhash)" >> $GITHUB_OUTPUT - - uses: Wandalen/wretry.action@v1.4.10 - name: Cirque Bootstrap cache - if: ${{ !env.ACT }} - continue-on-error: true - timeout-minutes: 10 - with: - action: buildjet/cache@v3 - attempt_limit: 3 - attempt_delay: 2000 - with: | - key: ${{ runner.os }}-cirque-${{ steps.cirque-bootstrap-cache-key.outputs.val }} - restore-keys: ${{ runner.os }}-cirque- - path: ${{ env.GITHUB_CACHE_PATH }} - - name: Cirque Bootstrap - run: | - integrations/docker/images/stage-2/chip-build-cirque/run.sh \ - --env GITHUB_ACTION_RUN=1 \ - --env GITHUB_CACHE_PATH=${{ env.GITHUB_CACHE_PATH }} \ - --volume /tmp:/tmp \ - -- sh -c " \ - git config --global --add safe.directory '*' \ - && scripts/tests/cirque_tests.sh bootstrap \ - " - - - name: Artifact suffix - id: outsuffix - uses: haya14busa/action-cond@v1 - if: ${{ !env.ACT }} - with: - cond: ${{ github.event.pull_request.number == '' }} - if_true: "${{ github.sha }}" - if_false: "pull-${{ github.event.pull_request.number }}" - - name: Build Binaries - run: | - integrations/docker/images/stage-2/chip-build-cirque/run.sh \ - -- sh -c " \ - git config --global --add safe.directory '*' \ - && scripts/build/gn_gen_cirque.sh \ - " - - name: Run Tests - run: | - integrations/docker/images/stage-2/chip-build-cirque/run.sh \ - --env LOG_DIR=/tmp/cirque_test_output \ - --env CLEANUP_DOCKER_FOR_CI=1 \ - --env GITHUB_ACTION_RUN=1 \ - --privileged \ - --volume /tmp:/tmp \ - --volume /dev/pts:/dev/pts \ - -- sh -c " \ - git config --global --add safe.directory '*' \ - && scripts/tests/cirque_tests.sh run_all_tests \ - " - - - - name: Uploading Binaries - uses: actions/upload-artifact@v4 - if: ${{ always() && !env.ACT }} - with: - name: cirque_log-${{steps.outsuffix.outputs.value}}-logs - path: /tmp/cirque_test_output/ diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index 6b150397783138..00000000000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2020-2023 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: "CodeQL" - -on: - workflow_dispatch: -# push: -# branches: [ "master", "sve*", "test_event_*", "v1.*" ] -# pull_request: - schedule: - - cron: '0 5 * * *' - -jobs: - analyze: - uses: project-chip/connectedhomeip/.github/workflows/build.yaml@master - with: - run-codeql: true - diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml deleted file mode 100644 index 2d46de23cfa523..00000000000000 --- a/.github/workflows/darwin-tests.yaml +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright (c) 2022 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 Tests - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - test_suites_chip_tool_darwin: - name: Test Suites - Darwin - - strategy: - matrix: - build_variant: [no-ble-no-shell-asan-clang] - env: - BUILD_VARIANT: ${{matrix.build_variant}} - - # We can't use the pigweed clang to build the Darwin framework once we start using - # Swift, because it does not handle CLANG_ENABLE_MODULES correctly. - # - # But the Xcode clang does not handle LSan correctly. Since we can't easily apply - # LSAN_OPTIONS to just everything except darwin-framework-tool, instead disable asan for - # it. - BUILD_VARIANT_FRAMEWORK_TOOL: no-ble - LSAN_OPTIONS: detect_leaks=1 malloc_context_size=40 suppressions=scripts/tests/chiptest/lsan-mac-suppressions.txt - - if: github.actor != 'restyled-io[bot]' - runs-on: macos-13 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Environment - # coreutils for stdbuf - run: brew install coreutils - - name: - Try to ensure the directories for core dumping and diagnostic - log collection exist and we can write them. - run: | - sudo chown ${USER} /cores || true - mkdir -p ~/Library/Logs/DiagnosticReports || true - mkdir objdir-clone || true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - bootstrap-log-name: bootstrap-logs-darwin-${{ matrix.build_variant }} - - - name: Build iOS Darwin Framework Tool Build Debug - working-directory: src/darwin/Framework - run: xcodebuild -target "darwin-framework-tool" -sdk iphoneos -configuration Debug AD_HOC_CODE_SIGNING_ALLOWED=YES - - - name: Run macOS Darwin Framework Tool Build Debug - working-directory: src/darwin/Framework - run: xcodebuild -target "darwin-framework-tool" -sdk macosx -configuration Debug - - name: Delete Defaults - run: defaults delete com.apple.dt.xctest.tool - continue-on-error: true - - name: Clean Build - run: xcodebuild clean - working-directory: src/darwin/Framework - - name: Build Apps - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target darwin-x64-darwin-framework-tool-${BUILD_VARIANT_FRAMEWORK_TOOL} \ - --target darwin-x64-all-clusters-${BUILD_VARIANT} \ - --target darwin-x64-lock-${BUILD_VARIANT} \ - --target darwin-x64-ota-provider-${BUILD_VARIANT} \ - --target darwin-x64-ota-requestor-${BUILD_VARIANT} \ - --target darwin-x64-tv-app-${BUILD_VARIANT} \ - --target darwin-x64-bridge-${BUILD_VARIANT} \ - --target darwin-x64-lit-icd-${BUILD_VARIANT} \ - --target darwin-x64-microwave-oven-${BUILD_VARIANT} \ - --target darwin-x64-rvc-${BUILD_VARIANT} \ - --target darwin-x64-network-manager-${BUILD_VARIANT} \ - build \ - --copy-artifacts-to objdir-clone \ - " - - name: Run Tests - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/tests/run_test_suite.py \ - --runner darwin_framework_tool_python \ - --chip-tool ./out/darwin-x64-darwin-framework-tool-${BUILD_VARIANT_FRAMEWORK_TOOL}/darwin-framework-tool \ - --target-skip-glob '{TestAccessControlConstraints}' \ - run \ - --iterations 1 \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/darwin-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - --lock-app ./out/darwin-x64-lock-${BUILD_VARIANT}/chip-lock-app \ - --ota-provider-app ./out/darwin-x64-ota-provider-${BUILD_VARIANT}/chip-ota-provider-app \ - --ota-requestor-app ./out/darwin-x64-ota-requestor-${BUILD_VARIANT}/chip-ota-requestor-app \ - --tv-app ./out/darwin-x64-tv-app-${BUILD_VARIANT}/chip-tv-app \ - --bridge-app ./out/darwin-x64-bridge-${BUILD_VARIANT}/chip-bridge-app \ - --microwave-oven-app ./out/darwin-x64-microwave-oven-${BUILD_VARIANT}/chip-microwave-oven-app \ - --rvc-app ./out/darwin-x64-rvc-${BUILD_VARIANT}/chip-rvc-app \ - --network-manager-app ./out/darwin-x64-network-manager-${BUILD_VARIANT}/matter-network-manager-app \ - " - - name: Run OTA Test - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/tests/run_darwin_framework_ota_test.py \ - run \ - --darwin-framework-tool ./out/darwin-x64-darwin-framework-tool-${BUILD_VARIANT_FRAMEWORK_TOOL}/darwin-framework-tool \ - --ota-requestor-app ./out/darwin-x64-ota-requestor-${BUILD_VARIANT}/chip-ota-requestor-app \ - --ota-data-file /tmp/rawImage \ - --ota-image-file /tmp/otaImage \ - --ota-destination-file /tmp/downloadedImage \ - --ota-candidate-file /tmp/otaCandidateJSON \ - " - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-darwin-${{ matrix.build_variant }} - path: /cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Uploading diagnostic logs - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-log-darwin-${{ matrix.build_variant }} - path: ~/Library/Logs/DiagnosticReports/ - - name: Uploading framework build log - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: framework-build-log-darwin-${BUILD_VARIANT_FRAMEWORK_TOOL} - path: out/darwin-x64-darwin-framework-tool-${BUILD_VARIANT_FRAMEWORK_TOOL}/darwin_framework_build.log - - name: Uploading objdir for debugging - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-objdir-darwin-${{ matrix.build_variant }} - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml deleted file mode 100644 index bc4441a84f1c23..00000000000000 --- a/.github/workflows/darwin.yaml +++ /dev/null @@ -1,134 +0,0 @@ -# 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: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - framework: - name: Build framework - if: github.actor != 'restyled-io[bot]' - runs-on: macos-13 - strategy: - matrix: - options: # We don't need a full matrix - - flavor: macos-release - arguments: -sdk macosx -configuration Release - - flavor: ios-release - arguments: -sdk iphoneos -configuration Release - - flavor: tvos-debug - arguments: -sdk appletvos -configuration Debug - - flavor: watchos-debug - arguments: -sdk watchos -configuration Debug - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - bootstrap-log-name: - bootstrap-logs-framework-${{ matrix.options.flavor }} - - name: Block zap-cli from being used - env: - PW_ENVSETUP_NO_BANNER: 1 - run: | - # Framework builds are NOT expected to require zap-cli - scripts/run_in_build_env.sh 'rm -- "$(which zap-cli)"' - # run_in_build_env.sh is used to ensure PATH is set to something that would otherwise find zap-cli - scripts/run_in_build_env.sh '(zap-cli --version && exit 1) || exit 0' - - name: Build - working-directory: src/darwin/Framework - run: xcodebuild -target "Matter" ${{ matrix.options.arguments }} - - tests: - name: Run framework tests - if: github.actor != 'restyled-io[bot]' - needs: [framework] # serialize to avoid running to many parallel macos runners - runs-on: macos-13 - strategy: - matrix: - options: # We don't need a full matrix - - flavor: asan - arguments: - -enableAddressSanitizer YES - -enableUndefinedBehaviorSanitizer YES - - flavor: tsan - arguments: -enableThreadSanitizer YES - # "leaks" does not seem to be very compatible with asan or tsan - - flavor: leaks - defines: ENABLE_LEAK_DETECTION=1 - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - bootstrap-log-name: - bootstrap-logs-framework-${{ matrix.options.flavor }} - - name: Build example All Clusters Server - run: | - scripts/examples/gn_build_example.sh examples/all-clusters-app/linux out/debug/all-clusters-app chip_config_network_layer_ble=false - - name: Build example OTA Provider - run: | - scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug/ota-provider-app chip_config_network_layer_ble=false - - name: Build example OTA Requestor - run: | - scripts/examples/gn_build_example.sh examples/ota-requestor-app/linux out/debug/ota-requestor-app chip_config_network_layer_ble=false non_spec_compliant_ota_action_delay_floor=0 - - name: Run Framework Tests - # We want to ensure that our log upload runs on timeout, so use a timeout here shorter - # than the 6-hour overall job timeout. 4.5 hours should be plenty. - timeout-minutes: 270 - working-directory: src/darwin/Framework - run: | - mkdir -p /tmp/darwin/framework-tests - ../../../out/debug/all-clusters-app/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) & - - export TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 - - # Disable BLE (CHIP_IS_BLE=NO) because the app does not have the permission to use it and that may crash the CI. - xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx ${{ matrix.options.arguments }} \ - CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} ${{ matrix.options.defines }}' \ - > >(tee /tmp/darwin/framework-tests/darwin-tests.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-err.log >&2) - - name: Collect crash logs - if: failure() && !env.ACT - run: | - mkdir -p /tmp/darwin/framework-tests - find ~/Library/Developer/Xcode/DerivedData /Library/Logs/DiagnosticReports -name '*.ips' -print0 | xargs -0 -J % cp % /tmp/darwin/framework-tests - - name: Uploading log files - uses: actions/upload-artifact@v4 - if: failure() && !env.ACT - with: - name: darwin-framework-test-logs-${{ matrix.options.flavor }} - path: /tmp/darwin/framework-tests - retention-days: 5 diff --git a/.github/workflows/docbuild.yaml b/.github/workflows/docbuild.yaml deleted file mode 100644 index 2d28a2a537d922..00000000000000 --- a/.github/workflows/docbuild.yaml +++ /dev/null @@ -1,54 +0,0 @@ -name: Documentation Build - -on: - pull_request: - types: [opened, synchronize, reopened] - branches: - - master - paths: - - '.github/workflows/docbuild.yaml' - - '**.md' - - 'docs/**' - push: - branches: - - master - -permissions: - contents: write - -jobs: - build-and-publish: - runs-on: ubuntu-latest - - steps: - - name: Checkout the code - uses: actions/checkout@v4 - with: - path: matter - fetch-depth: 0 - - name: Install Python - uses: actions/setup-python@v5 - with: - python-version: 3.8 - cache-dependency-path: matter/docs/requirements.txt - cache: pip - - name: Install base dependencies - working-directory: matter - run: | - sudo pip3 install -U pip - pip3 install -r docs/requirements.txt - - name: Build documentation - working-directory: matter/docs - run: | - mkdir -p _build/src - make html - touch _build/html/.nojekyll - - name: Deploy to gh-pages - if: github.repository == 'project-chip/connectedhomeip' && github.event_name == 'push' && github.ref_name == 'master' - uses: peaceiris/actions-gh-pages@v3 - with: - deploy_key: ${{ secrets.DOXYGEN_DEPLOY_KEY }} - external_repository: project-chip/connectedhomeip-doc - publish_dir: matter/docs/_build/html - # Keep only the latest version of the documentation - force_orphan: true diff --git a/.github/workflows/docker_img.yaml b/.github/workflows/docker_img.yaml deleted file mode 100644 index 8921a55cb2b9e0..00000000000000 --- a/.github/workflows/docker_img.yaml +++ /dev/null @@ -1,171 +0,0 @@ -# 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: Docker CHIP images - -on: - workflow_call: - inputs: - push_images: - required: false - type: boolean - default: false - push: - paths: - - "integrations/docker/**" - pull_request: - paths: - - "integrations/docker/**" - workflow_dispatch: - inputs: - push_images: - required: false - type: boolean - default: false - -jobs: - build_images_base: - name: Build Docker CHIP Build images - base - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - strategy: - fail-fast: false - matrix: - img: - - "" - - "-minimal" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build & Push images using project bash script - if: ${{ inputs.push_images == true }} - run: | - cd integrations/docker/images/base/chip-build${{ matrix.img }} - ./build.sh --latest --push - - name: Build images using project bash script - if: ${{ inputs.push_images == false }} - run: | - cd integrations/docker/images/base/chip-build${{ matrix.img }} - ./build.sh --latest - build_images_stage_1: - needs: [build_images_base] - name: Build Docker CHIP Build images - stage 1 - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - strategy: - fail-fast: false - matrix: - img: - - "-crosscompile" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build & Push images using project bash script - if: ${{ inputs.push_images == true }} - run: | - cd integrations/docker/images/stage-1/chip-build${{ matrix.img }} - ./build.sh --latest --push - - name: Build images using project bash script - if: ${{ inputs.push_images == false }} - run: | - cd integrations/docker/images/stage-1/chip-build${{ matrix.img }} - ./build.sh --latest - build_images_stage_2: - needs: [build_images_base, build_images_stage_1] - name: Build Docker CHIP Build images - stage 2 - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - strategy: - fail-fast: false - matrix: - img: - - "-ameba" - - "-asr" - - "-bouffalolab" - - "-doxygen" - - "-efr32" - - "-esp32" - - "-infineon" - # NOTE: imx image requires too much space for GitHub-hosted runners. It fails with: - # ApplyLayer exit status 1 stdout: stderr: write /opt/fsl-imx-xwayland/5.15-kirkstone/sysroots/armv8a-poky-linux/opt/ltp/testcases/bin/fanotify15: no space left on device - # - "-imx" - - "-java" - - "-nxp" - - "-nrf-platform" - - "-telink" - - "-ti" - - "-tizen" - - "-openiotsdk" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build & Push images using project bash script - if: ${{ inputs.push_images == true }} - run: | - cd integrations/docker/images/stage-2/chip-build${{ matrix.img }} - ./build.sh --latest --push - - name: Build images using project bash script - if: ${{ inputs.push_images == false }} - run: | - cd integrations/docker/images/stage-2/chip-build${{ matrix.img }} - ./build.sh --latest - - build_images_stage_3: - needs: [build_images_base, build_images_stage_1, build_images_stage_2] - name: Build Docker CHIP Build images - stage 3 - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - strategy: - fail-fast: false - matrix: - img: - - "-android" - - "-esp32-qemu" - - "-tizen-qemu" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build & Push images using project bash script - if: ${{ inputs.push_images == true }} - run: | - cd integrations/docker/images/stage-3/chip-build${{ matrix.img }} - ./build.sh --latest --push - - name: Build images using project bash script - if: ${{ inputs.push_images == false }} - run: | - cd integrations/docker/images/stage-3/chip-build${{ matrix.img }} - ./build.sh --latest - build_images_vscode: - needs: [build_images_base, build_images_stage_1, build_images_stage_2, build_images_stage_3] - name: Build Docker CHIP Build images - vscode - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' && false - strategy: - fail-fast: false - matrix: - img: - - "-vscode" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build & Push images using project bash script - if: ${{ inputs.push_images == true }} - run: | - cd integrations/docker/images/vscode/chip-build${{ matrix.img }} - ./build.sh --latest --push - - name: Build images using project bash script - if: ${{ inputs.push_images == false }} - run: | - cd integrations/docker/images/vscode-3/chip-build${{ matrix.img }} - ./build.sh --latest diff --git a/.github/workflows/doxygen.yaml b/.github/workflows/doxygen.yaml deleted file mode 100644 index 9dc5bbab1ac574..00000000000000 --- a/.github/workflows/doxygen.yaml +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright (c) 2020 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: Doxygen - -on: - push: - branches: - - master - - 'v*-branch' - paths: - - "**.do[xc]" - - "**.c[cs]?" - - "**.cxx" - - "**.cpp" - - "**.c\\+\\+" - - "**.ii" - - "**.ixx" - - "**.ipp" - - "**.i\\+\\+" - - "**.inl" - - "**.[hH]" - - "**.hh" - - "**.HH" - - "**.hxx" - - "**.hpp" - - "**.h\\+\\+" - - "**.mm" - - "**.txt" - - "**.[ido]dl" - - "**.java" - - "**.d" - - "**.php[45]?" - - "**.inc" - - "**.phtml" - - "**.[mM]" - pull_request: - paths: - - "**.do[xc]" - - "**.c[cs]?" - - "**.cxx" - - "**.cpp" - - "**.c\\+\\+" - - "**.ii" - - "**.ixx" - - "**.ipp" - - "**.i\\+\\+" - - "**.inl" - - "**.[hH]" - - "**.hh" - - "**.HH" - - "**.hxx" - - "**.hpp" - - "**.h\\+\\+" - - "**.mm" - - "**.txt" - - "**.[ido]dl" - - "**.java" - - "**.d" - - "**.php[45]?" - - "**.inc" - - "**.phtml" - - "**.[mM]" - 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: - doxygen: - name: Build Doxygen - - runs-on: ubuntu-latest - container: - image: ghcr.io/project-chip/chip-build-doxygen:81 - - if: github.actor != 'restyled-io[bot]' - - steps: - - name: "Print Actor" - run: echo ${{github.actor}} - - name: Checkout - uses: actions/checkout@v4 - - name: Generate - run: scripts/helpers/doxygen.sh - - name: Extract branch name - shell: bash - run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/})" - id: extract_branch - - name: Deploy if master - if: steps.extract_branch.outputs.branch == 'master' && github.repository == 'project-chip/connectedhomeip' - uses: peaceiris/actions-gh-pages@v3 - with: - deploy_key: ${{ secrets.DOXYGEN_DEPLOY_KEY }} - external_repository: project-chip/connectedhomeip-doc - publish_dir: ./docs/html - # Keep only the latest version of the documentation - force_orphan: true diff --git a/.github/workflows/example-tv-casting-darwin.yaml b/.github/workflows/example-tv-casting-darwin.yaml deleted file mode 100644 index 1528d87c448e8b..00000000000000 --- a/.github/workflows/example-tv-casting-darwin.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# 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: TV Casting Example - Darwin - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - tv-casting-bridge: - name: Build TV Casting Bridge example - if: github.actor != 'restyled-io[bot]' - runs-on: macos-14 - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - - name: Build - working-directory: examples/tv-casting-app/darwin/MatterTvCastingBridge - run: xcodebuild -target "MatterTvCastingBridge" -sdk iphoneos diff --git a/.github/workflows/examples-ameba.yaml b/.github/workflows/examples-ameba.yaml deleted file mode 100644 index 1c87787cf67ecc..00000000000000 --- a/.github/workflows/examples-ameba.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 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: Build example - Ameba - -on: - push: - branches: - - master - - 'v*-branch' - 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: - ameba: - name: Ameba - env: - BUILD_TYPE: ameba - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-ameba:81 - options: --user root - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: ameba - - name: Build example Ameba All Clusters App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target ameba-amebad-all-clusters \ - --target ameba-amebad-all-clusters-minimal \ - --target ameba-amebad-light \ - --target ameba-amebad-pigweed \ - build \ - " diff --git a/.github/workflows/examples-asr.yaml b/.github/workflows/examples-asr.yaml deleted file mode 100644 index 7597ef1783eea4..00000000000000 --- a/.github/workflows/examples-asr.yaml +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (c) 2023 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 - ASR - -on: - push: - branches: - - master - - 'v*-branch' - 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: - asr: - name: ASR - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-asr:81 - options: --user root - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: asr - - name: Build all ASR582X examples - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target asr-asr582x-all-clusters \ - --target asr-asr582x-all-clusters-minimal \ - --target asr-asr582x-lighting-ota \ - --target asr-asr582x-light-switch-shell \ - --target asr-asr582x-lock-no_logging \ - --target asr-asr582x-ota-requestor \ - --target asr-asr582x-bridge-factory \ - --target asr-asr582x-temperature-measurement-rotating_id \ - --target asr-asr582x-thermostat-rio \ - --target asr-asr582x-dishwasher \ - --target asr-asr582x-refrigerator \ - build \ - " diff --git a/.github/workflows/examples-bouffalolab.yaml b/.github/workflows/examples-bouffalolab.yaml deleted file mode 100644 index 9a51b612a18a7c..00000000000000 --- a/.github/workflows/examples-bouffalolab.yaml +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright (c) 2020 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 - BouffaloLab - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - bouffalolab: - name: Bouffalo Lab - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-bouffalolab:81 - 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: bouffalolab - extra-submodule-parameters: " --recursive" - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - name: Build example BL602 Lighting App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target bouffalolab-bl602dk-light-mfd-littlefs-rpc-115200 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Prepare some bloat report from the previous builds - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - bl602 bl602+mfd+littlefs+rpc lighting-app \ - out/artifacts/bouffalolab-bl602dk-light-mfd-littlefs-rpc-115200/chip-bl602-lighting-example.out \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - - name: Build example BL702 Lighting App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target bouffalolab-bl706dk-light-ethernet-easyflash \ - --target bouffalolab-bl706dk-light-wifi-littlefs \ - --target bouffalolab-bl706dk-light-mfd-rpc-littlefs-115200 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Prepare some bloat report from the previous builds - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - bl702 bl702+eth lighting-app \ - out/artifacts/bouffalolab-bl706dk-light-ethernet-easyflash/chip-bl702-lighting-example.out \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - bl702 bl702+wifi lighting-app \ - out/artifacts/bouffalolab-bl706dk-light-wifi-littlefs/chip-bl702-lighting-example.out \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - bl702 bl706+mfd+rpc+littlefs lighting-app \ - out/artifacts/bouffalolab-bl706dk-light-mfd-rpc-littlefs-115200/chip-bl702-lighting-example.out \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - - name: Build example BL702L Lighting App - timeout-minutes: 30 - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target bouffalolab-bl704ldk-light-mfd-littlefs \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Prepare some bloat report from the previous builds - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - bl702l bl702l+mfd+littlefs lighting-app \ - out/artifacts/bouffalolab-bl704ldk-light-mfd-littlefs/chip-bl702l-lighting-example.out \ - /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: BouffaloLab \ No newline at end of file diff --git a/.github/workflows/examples-cc13xx_26xx.yaml b/.github/workflows/examples-cc13xx_26xx.yaml deleted file mode 100644 index 31988e66385236..00000000000000 --- a/.github/workflows/examples-cc13xx_26xx.yaml +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright (c) 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: Build example - TI CC13XX_26XX - -on: - push: - branches: - - master - - 'v*-branch' - 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: - cc13xx_26xx: - name: cc13xx_26xx - - env: - BUILD_TYPE: gn_cc13xx_26xx - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-ti:81 - 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: cc13xx_26xx - extra-submodule-parameters: " --recursive" - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target ti-cc13x4_26x4-lighting-ftd \ - --target ti-cc13x4_26x4-lock-ftd \ - --target ti-cc13x4_26x4-pump-mtd \ - --target ti-cc13x4_26x4-pump-controller-mtd \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get lock FTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 lock-ftd \ - out/artifacts/ti-cc13x4_26x4-lock-ftd/chip-LP_EM_CC1354P10_6-lock-example.out \ - /tmp/bloat_reports/ - - name: Get Pump App size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 pump-app \ - out/artifacts/ti-cc13x4_26x4-pump-mtd/chip-LP_EM_CC1354P10_6-pump-example.out \ - /tmp/bloat_reports/ - - name: Get Pump Controller MTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 pump-controller-app \ - out/artifacts/ti-cc13x4_26x4-pump-controller-mtd/chip-LP_EM_CC1354P10_6-pump-controller-example.out \ - /tmp/bloat_reports/ - - name: Get Lighting FTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 lighting-app \ - out/artifacts/ti-cc13x4_26x4-lighting-ftd/chip-LP_EM_CC1354P10_6-lighting-example.out \ - /tmp/bloat_reports/ - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: cc13x4_26x4 diff --git a/.github/workflows/examples-cc32xx.yaml b/.github/workflows/examples-cc32xx.yaml deleted file mode 100644 index 24edcb3fa92603..00000000000000 --- a/.github/workflows/examples-cc32xx.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) 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: Build example - TI CC32XX - -on: - workflow_dispatch: - push: - branches: - - master - - 'v*-branch' - 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: - cc32xx: - name: cc32xx - - env: - BUILD_TYPE: gn_cc32xx - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-ti:81 - 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: cc32xx - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target cc32xx-lock --target cc32xx-air-purifier build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get lock app size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc32xx CC3235SF_LAUNCHXL lock \ - out/artifacts/cc32xx-lock/chip-CC3235SF_LAUNCHXL-lock-example.out \ - /tmp/bloat_reports/ - - - name: Get air purifier app size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc32xx CC3235SF_LAUNCHXL air-purifier \ - out/artifacts/cc32xx-air-purifier/chip-CC3235SF_LAUNCHXL-air-purifier-example.out \ - /tmp/bloat_reports/ - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: cc32xx diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml deleted file mode 100644 index 57337d553128b5..00000000000000 --- a/.github/workflows/examples-efr32.yaml +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright (c) 2020 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 - EFR32 - -on: - push: - branches: - - master - - 'v*-branch' - 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: - efr32: - name: EFR32 - - env: - SILABS_BOARD: BRD4187C - BUILD_TYPE: gn_efr32 - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-efr32:81 - 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: silabs_docker - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Test SLC gen - timeout-minutes: 30 - run: | - scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs ./out/light-app BRD4187C --slc_generate --docker - rm -rf ./out/ - - name: Build some BRD4187C variants (1) - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target efr32-brd4187c-thermostat-use-ot-lib \ - --target efr32-brd4187c-switch-shell-use-ot-coap-lib \ - --target efr32-brd4187c-unit-test \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Clean out build output - run: rm -rf ./out - - name: Build some BRD4187C variants (2) - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target efr32-brd4187c-lock-rpc \ - --target efr32-brd4187c-air-quality-sensor-app-shell-heap-monitoring \ - --target efr32-brd4187c-window-covering-additional-data-advertising \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Prepare some bloat report from the previous builds - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - efr32 BRD4187C lock-app \ - out/efr32-brd4187c-lock-rpc/matter-silabs-lock-example.out \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - efr32 BRD4187C window-app \ - out/efr32-brd4187c-window-covering-additional-data-advertising/matter-silabs-window-example.out \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build some WiFi Soc variants - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target efr32-brd2605a-light-skip-rps-generation \ - --target efr32-brd4338a-lock-skip-rps-generation \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Prepare bloat report for brd4338a lock app - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - efr32 BRD4338a lock-app \ - out/efr32-brd4338a-lock-skip-rps-generation/matter-silabs-lock-example.out \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build EFR32 with WiFi NCP - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target efr32-brd4187c-lock-wifi-siwx917 \ - --target efr32-brd4187c-light-wifi-rs9116 \ - --target efr32-brd4187c-lock-wifi-wf200 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - 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: EFR32 diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml deleted file mode 100644 index b3a6ed24e66568..00000000000000 --- a/.github/workflows/examples-esp32.yaml +++ /dev/null @@ -1,173 +0,0 @@ -# Copyright (c) 2020 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 - ESP32 - -on: - push: - branches: - - master - - 'v*-branch' - 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: - esp32: - name: ESP32 - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-esp32:81 - volumes: - - "/tmp/bloat_reports:/tmp/bloat_reports" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: esp32 - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build some M5Stack variations - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target esp32-m5stack-all-clusters \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Prepare bloat report - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - esp32 m5stack all-clusters-app \ - out/esp32-m5stack-all-clusters/chip-all-clusters-app.elf \ - /tmp/bloat_reports/ - - name: Prepare code pregen and ensure compile time pregen not possible - run: | - ./scripts/run_in_build_env.sh "./scripts/codepregen.py ./zzz_pregenerated" - mv scripts/codegen.py scripts/codegen.py.renamed - mv scripts/tools/zap/generate.py scripts/tools/zap/generate.py.renamed - - name: Clean output - run: rm -rf ./out - - name: Build some M5Stack variations with pregen - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target esp32-m5stack-all-clusters-minimal \ - --target esp32-m5stack-all-clusters-rpc-ipv6only \ - --pregen-dir ./zzz_pregenerated \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Undo code pregeneration changes - run: | - rm -rf ./zzz_pregenerated - mv scripts/codegen.py.renamed scripts/codegen.py - mv scripts/tools/zap/generate.py.renamed scripts/tools/zap/generate.py - - name: Build example All Clusters App(Target:ESP32C3) - run: scripts/examples/esp_example.sh all-clusters-app sdkconfig.defaults.esp32c3 esp32c3 - - name: Copy aside build products - run: | - mkdir -p example_binaries/esp32-build - cp examples/all-clusters-app/esp32/build/chip-all-clusters-app.elf \ - example_binaries/esp32-build/chip-all-clusters-app.elf - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - esp32 c3devkit all-clusters-app \ - example_binaries/esp32-build/chip-all-clusters-app.elf \ - /tmp/bloat_reports/ - - - name: Build example Lighting App (Target:ESP32H2) - run: scripts/examples/esp_example.sh lighting-app sdkconfig.defaults.esp32h2 esp32h2 - - - name: Build example Lighting App (Target:ESP32C6) - run: scripts/examples/esp_example.sh lighting-app sdkconfig.defaults.esp32c6 esp32c6 - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: ESP32 - - esp32_1: - name: ESP32_1 - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' && github.repository_owner == 'espressif' - - container: - image: ghcr.io/project-chip/chip-build-esp32:81 - 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: esp32 - - - name: Build example Bridge App - run: scripts/examples/esp_example.sh bridge-app - - - name: Build example Persistent Storage App - run: scripts/examples/esp_example.sh persistent-storage sdkconfig.defaults - - - name: Build example Shell App - run: scripts/examples/esp_example.sh shell sdkconfig.defaults - - - name: Build example Temperature Measurement App - run: scripts/examples/esp_example.sh temperature-measurement-app sdkconfig.optimize.defaults - - - name: Build example OTA Requestor App - run: scripts/examples/esp_example.sh ota-requestor-app sdkconfig.defaults - - - name: Build example OTA Provider App - run: scripts/examples/esp_example.sh ota-provider-app sdkconfig.defaults - - - name: Build example Light Switch App (Target:ESP32C3) - run: scripts/examples/esp_example.sh light-switch-app sdkconfig.defaults.esp32c3 esp32c3 - - - name: Build example Lighting App (external platform) - run: scripts/examples/esp_example.sh lighting-app sdkconfig.ext_plat.defaults - - - name: Build example Energy Management App - run: scripts/examples/esp_example.sh energy-management-app sdkconfig.defaults - - - name: Build example LIT ICD App (Target:ESP32H2) - run: scripts/examples/esp_example.sh lit-icd-app sdkconfig.defaults esp32h2 - - - name: Build example Pigweed App - run: scripts/examples/esp_example.sh pigweed-app sdkconfig.defaults - - - name: Build example Lock App (Target:ESP32C6) - run: scripts/examples/esp_example.sh lock-app sdkconfig.defaults.esp32c6 esp32c6 diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml deleted file mode 100644 index ada44f1557baaf..00000000000000 --- a/.github/workflows/examples-infineon.yaml +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright (c) 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: Build example - Infineon - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - infineon: - name: Infineon examples building - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-infineon:81 - env: - # TODO: this should probably be part of the dockerfile itself - CY_TOOLS_PATHS: /opt/Tools/ModusToolbox/tools_3.2 - 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: infineon - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build PSoC6 lock-app example - run: | - scripts/run_in_build_env.sh \ - "scripts/build/build_examples.py \ - --enable-flashbundle \ - --target infineon-psoc6-lock \ - build \ - --copy-artifacts-to out/artifacts \ - " - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - psoc6 cy8ckit_062s2_43012 lock \ - out/artifacts/infineon-psoc6-lock/chip-psoc6-lock-example.out \ - /tmp/bloat_reports/ - - name: Build PSoC6 all-clusters-app example - run: | - scripts/run_in_build_env.sh \ - "scripts/build/build_examples.py \ - --enable-flashbundle \ - --target infineon-psoc6-all-clusters \ - build \ - --copy-artifacts-to out/artifacts \ - " - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - psoc6 cy8ckit_062s2_43012 all-clusters \ - out/artifacts/infineon-psoc6-all-clusters/chip-psoc6-clusters-example.out \ - /tmp/bloat_reports/ - - name: Build PSoC6 all-clusters-minimal-app example - run: | - scripts/run_in_build_env.sh \ - "scripts/build/build_examples.py \ - --enable-flashbundle \ - --target infineon-psoc6-all-clusters-minimal \ - build \ - --copy-artifacts-to out/artifacts \ - " - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - psoc6 cy8ckit_062s2_43012 all-clusters-minimal \ - out/artifacts/infineon-psoc6-all-clusters-minimal/chip-psoc6-clusters-minimal-example.out \ - /tmp/bloat_reports/ - - name: Build PSoC6 lighting-app example - run: | - scripts/run_in_build_env.sh \ - "scripts/build/build_examples.py \ - --enable-flashbundle \ - --target infineon-psoc6-light \ - build \ - --copy-artifacts-to out/artifacts \ - " - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - psoc6 cy8ckit_062s2_43012 light \ - out/artifacts/infineon-psoc6-light/chip-psoc6-lighting-example.out \ - /tmp/bloat_reports/ - - - name: Build CYW30739 Lighting App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target cyw30739-cyw30739b2_p5_evk_01-light \ - --target cyw30739-cyw30739b2_p5_evk_02-light \ - --target cyw30739-cyw30739b2_p5_evk_03-light \ - --target cyw30739-cyw930739m2evb_02-light \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get light size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-01 light \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_01-light/lighting_app-CYW30739B2-P5-EVK-01.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-02 light \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_02-light/lighting_app-CYW30739B2-P5-EVK-02.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-03 light \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_03-light/lighting_app-CYW30739B2-P5-EVK-03.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW930739M2EVB-02 light \ - out/artifacts/cyw30739-cyw930739m2evb_02-light/lighting_app-CYW930739M2EVB-02.elf \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build CYW30739 Light Switch App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target cyw30739-cyw30739b2_p5_evk_01-light-switch \ - --target cyw30739-cyw30739b2_p5_evk_02-light-switch \ - --target cyw30739-cyw30739b2_p5_evk_03-light-switch \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get light-switch size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-01 light-switch \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_01-light-switch/light_switch_app-CYW30739B2-P5-EVK-01.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-02 light-switch \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_02-light-switch/light_switch_app-CYW30739B2-P5-EVK-02.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-03 light-switch \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_03-light-switch/light_switch_app-CYW30739B2-P5-EVK-03.elf \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build CYW30739 Lock App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target cyw30739-cyw30739b2_p5_evk_01-lock \ - --target cyw30739-cyw30739b2_p5_evk_02-lock \ - --target cyw30739-cyw30739b2_p5_evk_03-lock \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get lock size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-01 lock \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_01-lock/lock_app-CYW30739B2-P5-EVK-01.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-02 lock \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_02-lock/lock_app-CYW30739B2-P5-EVK-02.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-03 lock \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_03-lock/lock_app-CYW30739B2-P5-EVK-03.elf \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build CYW30739 Thermostat App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target cyw30739-cyw30739b2_p5_evk_01-thermostat \ - --target cyw30739-cyw30739b2_p5_evk_02-thermostat \ - --target cyw30739-cyw30739b2_p5_evk_03-thermostat \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get thermostat size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-01 thermostat \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_01-thermostat/thermostat-CYW30739B2-P5-EVK-01.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-02 thermostat \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_02-thermostat/thermostat-CYW30739B2-P5-EVK-02.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 CYW30739B2-P5-EVK-03 thermostat \ - out/artifacts/cyw30739-cyw30739b2_p5_evk_03-thermostat/thermostat-CYW30739B2-P5-EVK-03.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: Infineon diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml deleted file mode 100644 index 7000082f03e32e..00000000000000 --- a/.github/workflows/examples-linux-arm.yaml +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright (c) 2020 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 - Linux ARM - -on: - push: - branches: - - master - - 'v*-branch' - 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: - arm_crosscompile: - name: Linux ARM Cross compile - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-crosscompile:81 - 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: linux - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build Some samples - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-arm64-chip-cert-clang \ - --target linux-arm64-all-clusters-clang \ - --target linux-arm64-chip-tool-ipv6only-clang \ - --target linux-arm64-chip-tool-nodeps-ipv6only \ - --target linux-arm64-lock-clang \ - --target linux-arm64-minmdns-clang \ - --target linux-arm64-light-data-model-enabled-rpc-ipv6only-clang \ - --target linux-arm64-thermostat-no-ble-clang \ - --target linux-arm64-lit-icd-no-ble-clang \ - --target linux-arm64-fabric-admin-clang-rpc \ - --target linux-arm64-fabric-bridge-no-ble-clang-rpc \ - build \ - " - - name: Bloat report - chip-tool - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux arm64 chip-tool-ipv6only \ - out/linux-arm64-chip-tool-ipv6only-clang/chip-tool \ - /tmp/bloat_reports/ - - name: Bloat report - thermostat - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux arm64 thermostat-no-ble \ - out/linux-arm64-thermostat-no-ble-clang/thermostat-app \ - /tmp/bloat_reports/ - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: Linux diff --git a/.github/workflows/examples-linux-imx.yaml b/.github/workflows/examples-linux-imx.yaml deleted file mode 100644 index d2f1014eb576cf..00000000000000 --- a/.github/workflows/examples-linux-imx.yaml +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright (c) 2022 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 - i.MX Linux - -on: - push: - branches: - - master - - 'v*-branch' - 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: - imx: - name: Linux i.MX Build - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-imx:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Build lighting-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target imx-lighting-app \ - build" - - name: Clean out build output - run: rm -rf ./out - - name: Build chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target imx-chip-tool \ - build" - - name: Clean out build output - run: rm -rf ./out - - name: Build thermostat - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target imx-thermostat \ - build" - - name: Clean out build output - run: rm -rf ./out - - name: Build all-cluster - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target imx-all-clusters-app \ - build" - - name: Clean out build output - run: rm -rf ./out - - name: Build all-cluster-minimal - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target imx-all-clusters-minimal-app \ - build" - - name: Clean out build output - run: rm -rf ./out - - name: Build ota-provider-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target imx-ota-provider-app \ - build" - - name: Clean out build output - run: rm -rf ./out diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml deleted file mode 100644 index 83b82369ba4878..00000000000000 --- a/.github/workflows/examples-linux-standalone.yaml +++ /dev/null @@ -1,226 +0,0 @@ -# Copyright (c) 2020 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 - Linux Standalone - -on: - push: - branches: - - master - - 'v*-branch' - 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: - linux_standalone: - name: Linux Standalone - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - 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: linux - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build Standalone cert tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-chip-cert \ - build" - - name: Build minmdns example with platform dns - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-address-resolve-tool-platform-mdns-ipv6only \ - build" - - name: Build example Standalone chip tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-chip-tool \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug chip-tool \ - out/linux-x64-chip-tool/chip-tool \ - /tmp/bloat_reports/ - - name: Build example Standalone Shell - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-shell \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug shell \ - out/linux-x64-shell/chip-shell \ - /tmp/bloat_reports/ - - name: Build example Standalone All Clusters Server - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-all-clusters \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug all-clusters-app \ - out/linux-x64-all-clusters/chip-all-clusters-app \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build example Standalone All Clusters Minimal Server - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-all-clusters-minimal \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug all-clusters-minimal-app \ - out/linux-x64-all-clusters-minimal/chip-all-clusters-minimal-app \ - /tmp/bloat_reports/ - - name: Build example TV app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-tv-app \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug tv-app \ - out/linux-x64-tv-app/chip-tv-app \ - /tmp/bloat_reports/ - - name: Build example Standalone TV Casting App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-tv-casting-app \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug tv-casting-app \ - out/linux-x64-tv-casting-app/chip-tv-casting-app \ - /tmp/bloat_reports/ - - name: Build example lighting app with RPCs and UI - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-light-rpc-with-ui \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug+rpc+ui lighting-app \ - out/linux-x64-light-rpc-with-ui/chip-lighting-app \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build example Standalone Bridge - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-bridge \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug bridge-app \ - out/linux-x64-bridge/chip-bridge-app \ - /tmp/bloat_reports/ - - name: Build example OTA Provider - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-ota-provider \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug ota-provider-app \ - out/linux-x64-ota-provider/chip-ota-provider-app \ - /tmp/bloat_reports/ - - name: Build example OTA Requestor - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-ota-requestor \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug ota-requestor-app \ - out/linux-x64-ota-requestor/chip-ota-requestor-app \ - /tmp/bloat_reports/ - - name: Clean out build output - run: rm -rf ./out - - name: Build example Standalone Lock App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-lock-no-thread \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug lock-app \ - out/linux-x64-lock-no-thread/chip-lock-app \ - /tmp/bloat_reports/ - - name: Build example contact sensor with UI - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-contact-sensor-no-ble-with-ui \ - build" - - name: Build example Air Purifier - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-air-purifier \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug air-purifier-app \ - out/linux-x64-air-purifier/chip-air-purifier-app \ - /tmp/bloat_reports/ - - name: Build example Fabric Admin - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-fabric-admin-rpc \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug fabric-admin \ - out/linux-x64-fabric-admin-rpc/fabric-admin \ - /tmp/bloat_reports/ - - name: Build example Fabric Bridge App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-fabric-bridge-no-ble-rpc \ - build" - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - linux debug fabric-bridge-app \ - out/linux-x64-fabric-bridge-no-ble-rpc/fabric-bridge-app \ - /tmp/bloat_reports/ - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: Linux-Standalone diff --git a/.github/workflows/examples-linux-tv-casting-app.yaml b/.github/workflows/examples-linux-tv-casting-app.yaml deleted file mode 100644 index e2617aeec7f42e..00000000000000 --- a/.github/workflows/examples-linux-tv-casting-app.yaml +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright (c) 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: Test TV Casting Example - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -jobs: - Linux-test: - name: Linux Test - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Set Up Environment for Size Reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build Linux tv-app - run: | - ./scripts/run_in_build_env.sh \ - "scripts/examples/gn_build_example.sh examples/tv-app/linux/ out/tv-app" - - - name: Build Linux tv-casting-app - run: | - ./scripts/run_in_build_env.sh \ - "scripts/examples/gn_build_example.sh examples/tv-casting-app/linux/ out/tv-casting-app chip_casting_simplified=true" - - - name: - Test casting from Linux tv-casting-app to Linux tv-app - - Commissionee Generated Passcode - run: | - ./scripts/run_in_build_env.sh \ - "python3 ./scripts/tests/run_tv_casting_test.py" - timeout-minutes: 2 # Comment this out to debug if GitHub Action times out. - - # TODO: this test is flaky and was disabled - # https://github.com/project-chip/connectedhomeip/issues/34598 - # - # - name: - # Test casting from Linux tv-casting-app to Linux tv-app - - # Commissioner Generated Passcode - # run: | - # ./scripts/run_in_build_env.sh \ - # "python3 ./scripts/tests/run_tv_casting_test.py --commissioner-generated-passcode=True" - # timeout-minutes: 2 # Comment this out to debug if GitHub Action times out. - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: Linux diff --git a/.github/workflows/examples-mw320.yaml b/.github/workflows/examples-mw320.yaml deleted file mode 100644 index 8f76321a0c0242..00000000000000 --- a/.github/workflows/examples-mw320.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# 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: Build example - MW320 - -on: - push: - branches: - - master - - 'v*-branch' - 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: - mw320: - name: MW320 - - env: - BUILD_TYPE: gn_mw320 - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - 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: mw320 - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build MW320 all clusters example app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target 'mw320-all-clusters-app' \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: MW320 diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml deleted file mode 100644 index d781087fc84760..00000000000000 --- a/.github/workflows/examples-nrfconnect.yaml +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright (c) 2020 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 - nRF Connect SDK - -on: - push: - branches: - - master - - 'v*-branch' - 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: - nrfconnect: - name: nRF Connect SDK - - env: - BUILD_TYPE: nrfconnect - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-nrf-platform:81 - 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: nrfconnect - - name: Detect changed paths - uses: dorny/paths-filter@v3 - id: changed_paths - with: - filters: | - nrfconnect: - - '**/nrfconnect/**' - - '**/Zephyr/**' - - '**/zephyr/**' - tests: - - '**/tests/**' - shell: - - 'examples/shell/nrfconnect/**' - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Check nRF Connect SDK revision. - run: scripts/run_in_build_env.sh "python3 scripts/setup/nrfconnect/update_ncs.py --check" - - name: Run unit tests of factory data generation script - run: | - scripts/run_in_build_env.sh 'pip3 install -r scripts/setup/requirements.nrfconnect.txt' - scripts/run_in_build_env.sh "./scripts/tools/nrfconnect/tests/test_generate_factory_data.py" - - name: Build example nRF Connect SDK Lock App on nRF52840 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lock-app nrf52840dk/nrf52840 - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 lock-app \ - examples/lock-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Lighting App on nRF52840 Dongle - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lighting-app nrf52840dongle/nrf52840 -DCONFIG_CHIP_ROTATING_DEVICE_ID=y - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dongle_nrf52840 lighting-app \ - examples/lighting-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Lighting App on nRF52840 DK with RPC - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lighting-app nrf52840dk/nrf52840 -DOVERLAY_CONFIG=rpc.overlay - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840+rpc lighting-app \ - examples/lighting-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Light Switch App on nRF52840 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh light-switch-app nrf52840dk/nrf52840 - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 light-switch-app \ - examples/light-switch-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Shell on nRF52840 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.shell == 'true' - run: | - scripts/examples/nrfconnect_example.sh shell nrf52840dk/nrf52840 - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 shell \ - examples/shell/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Pump App on nRF52840 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh pump-app nrf52840dk/nrf52840 - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 pump-app \ - examples/pump-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Pump Controller App on nRF52840 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh pump-controller-app nrf52840dk/nrf52840 - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 pump-controller-app \ - examples/pump-controller-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK All Clusters App on nRF52840 DK - run: | - scripts/examples/nrfconnect_example.sh all-clusters-app nrf52840dk/nrf52840 - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 all-clusters-app \ - examples/all-clusters-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK All Clusters Minimal App on nRF52840 DK - run: | - scripts/examples/nrfconnect_example.sh all-clusters-minimal-app nrf52840dk/nrf52840 -DFILE_SUFFIX=dfu - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf52840dk_nrf52840 all-clusters-minimal-app \ - examples/all-clusters-minimal-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Lock App on nRF5340 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lock-app nrf5340dk/nrf5340/cpuapp - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf5340dk_nrf5340_cpuapp lock-app \ - examples/lock-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Lighting App on nRF5340 DK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lighting-app nrf5340dk/nrf5340/cpuapp - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf5340dk_nrf5340_cpuapp lighting-app \ - examples/lighting-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Lock App on nRF7002 PDK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lock-app nrf7002dk/nrf5340/cpuapp - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf7002dk_nrf5340_cpuapp lock-app \ - examples/lock-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Light Switch App on nRF7002 PDK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh light-switch-app nrf7002dk/nrf5340/cpuapp - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf7002dk_nrf5340_cpuapp light-switch-app \ - examples/light-switch-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK Lighting App on nRF7002 PDK - if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/examples/nrfconnect_example.sh lighting-app nrf7002dk/nrf5340/cpuapp - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf7002dk_nrf5340_cpuapp lighting-app \ - examples/light-switch-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Build example nRF Connect SDK All Clusters App on nRF7002 PDK - run: | - scripts/examples/nrfconnect_example.sh all-clusters-app nrf7002dk/nrf5340/cpuapp -DFILE_SUFFIX=release - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nrfconnect nrf7002dk_nrf5340_cpuapp all-clusters-app \ - examples/all-clusters-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \ - /tmp/bloat_reports/ - - name: Run unit tests for Zephyr native_posix_64 platform - if: github.event_name == 'push' || steps.changed_paths.outputs.tests == 'true' || steps.changed_paths.outputs.nrfconnect == 'true' - run: | - scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target nrf-native-posix-64-tests build" - - name: Uploading Failed Test Logs - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: test-log - path: | - src/test_driver/nrfconnect/build/Testing/Temporary/LastTest.log - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: nRFConnect diff --git a/.github/workflows/examples-nuttx.yaml b/.github/workflows/examples-nuttx.yaml deleted file mode 100644 index f1f682e00898f6..00000000000000 --- a/.github/workflows/examples-nuttx.yaml +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (c) 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 - NuttX - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - nuttx: - name: NuttX - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-nuttx:81 - 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: nuttx - extra-submodule-parameters: " --recursive" - - name: Build example simulator NuttX Lighting App - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target nuttx-x64-light \ - build \ - " diff --git a/.github/workflows/examples-nxp.yaml b/.github/workflows/examples-nxp.yaml deleted file mode 100644 index c4b6eb148ae50b..00000000000000 --- a/.github/workflows/examples-nxp.yaml +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright (c) 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: Build example - NXP - -on: - push: - branches: - - master - - 'v*-branch' - 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: - FreeRTOS: - name: FREERTOS - - env: - BUILD_TYPE: gn_FreeRTOS - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-nxp:81 - 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: nxp - extra-submodule-parameters: --recursive - - - name: Detect changed paths - uses: dorny/paths-filter@v3 - id: changed_paths - with: - filters: | - nxp: - - '**/nxp/**' - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build K32W0 examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-k32w0-freertos-lighting-factory \ - --target nxp-k32w0-freertos-contact-sensor-low-power-factory \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get K32W0 lighting app size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nxp k32w0+release light \ - out/artifacts/nxp-k32w0-freertos-lighting-factory/chip-k32w0x-light-example.elf \ - /tmp/bloat_reports/ - - name: Get K32W0 contact sensor size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nxp k32w0+release contact \ - out/artifacts/nxp-k32w0-freertos-contact-sensor-low-power-factory/chip-k32w0x-contact-example.elf \ - /tmp/bloat_reports/ - - - name: clean build - run: rm -rf ./out - - - name: Build K32W1 examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-k32w1-freertos-lighting \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get K32W1 lighting app size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nxp k32w1+release light \ - out/artifacts/nxp-k32w1-freertos-lighting/chip-k32w1-light-example.elf \ - /tmp/bloat_reports/ - - - name: clean build - run: rm -rf ./out - - - name: Build MCXW71 examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-mcxw71-freertos-contact-sensor-low-power \ - --target nxp-mcxw71-freertos-lock-app \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get MCXW71 contact sensor size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nxp mcxw71+release contact \ - out/artifacts/nxp-mcxw71-freertos-contact-sensor-low-power/chip-mcxw71-contact-example.elf \ - /tmp/bloat_reports/ - - name: Get MCXW71 lock app size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - nxp mcxw71+release lock \ - out/artifacts/nxp-mcxw71-freertos-lock-app/chip-mcxw71-lock-example.elf \ - /tmp/bloat_reports/ - - - name: clean build - run: rm -rf ./out - - - name: Build RT1060 all clusters example app - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rt1060-freertos-all-clusters-wifi-iw416 \ - --target nxp-rt1060-freertos-all-clusters-wifi-w8801 \ - --target nxp-rt1060-freertos-all-clusters-wifi-ota-evkc-iwx12 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build RT1060 thermostat example app - if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true' - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rt1060-freertos-thermostat-thread-wifi-evkc-iwx12 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build RT1060 laundry-washer example app - if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true' - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rt1060-freertos-laundry-washer-wifi-evkc-iwx12 \ - --target nxp-rt1060-freertos-laundry-washer-thread-evkc-iwx12 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - - name: clean build - run: rm -rf ./out - - - name: Build RT1170 all clusters example app - if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true' - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rt1170-freertos-all-clusters-wifi-iwx12 \ - --target nxp-rt1170-freertos-all-clusters-wifi-ota-iwx12 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build RT1170 thermostat example app - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rt1170-freertos-thermostat-thread-wifi-iwx12 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build RT1170 laundry-washer example app - if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true' - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rt1170-freertos-laundry-washer-thread-iwx12 \ - build \ - --copy-artifacts-to out/artifacts \ - " - - - name: clean build - run: rm -rf ./out - - - name: Build RW61X all clusters example app - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rw61x-freertos-all-clusters-wifi \ - --target nxp-rw61x-freertos-all-clusters-wifi-ota-cmake \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build RW61X thermostat example app - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rw61x-freertos-thermostat-thread-wifi \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build RW61X laundry-washer example app - if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true' - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rw61x-freertos-laundry-washer-wifi \ - build \ - --copy-artifacts-to out/artifacts \ - " - - - name: clean build - run: rm -rf ./out - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: NXP-FREERTOS - zephyr: - name: ZEPHYR - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-nxp-zephyr:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: nxp - - name: Detect changed paths - uses: dorny/paths-filter@v3 - id: changed_paths - with: - filters: | - nxp: - - '**/nxp/**' - - name: Build NXP Zephyr examples - if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true' - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target nxp-rw61x-zephyr-all-clusters \ - --target nxp-rw61x-zephyr-thermostat \ - --target nxp-rw61x-zephyr-laundry-washer-factory \ - --target nxp-rw61x_eth-zephyr-thermostat-ethernet \ - build \ - " diff --git a/.github/workflows/examples-openiotsdk.yaml b/.github/workflows/examples-openiotsdk.yaml deleted file mode 100644 index 95389cb157f5ee..00000000000000 --- a/.github/workflows/examples-openiotsdk.yaml +++ /dev/null @@ -1,216 +0,0 @@ -# Copyright (c) 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: Build example - Open IoT SDK - -on: - # Workflow disabled due to lack of maintainer - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - openiotsdk: - name: Open IoT SDK examples building - - env: - TEST_NETWORK_NAME: OIStest - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-openiotsdk:81 - volumes: - - "/tmp/bloat_reports:/tmp/bloat_reports" - options: --privileged - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: openiotsdk linux - extra-submodule-parameters: " --recursive" - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build and install Python controller - run: | - scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv' - scripts/run_in_python_env.sh out/venv 'pip install -r scripts/setup/requirements.openiotsdk.txt' - - - name: Build shell example - id: build_shell - run: | - scripts/examples/openiotsdk_example.sh shell - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - openiotsdk release shell \ - examples/shell/openiotsdk/build/chip-openiotsdk-shell-example.elf \ - /tmp/bloat_reports/ - - - name: "Test: shell example" - if: github.event_name == 'workflow_dispatch' && steps.build_shell.outcome == 'success' - run: | - scripts/run_in_python_env.sh out/venv \ - 'scripts/examples/openiotsdk_example.sh --no-activate -C test shell' - - - name: Clean shell output - run: rm -rf examples/shell/openiotsdk/build - - - name: Build lock-app example (mbedtls) - # Disabled being tracked here: https://github.com/project-chip/connectedhomeip/issues/28026 - if: false - id: build_lock_app_mbedtls - run: | - scripts/examples/openiotsdk_example.sh -b mbedtls lock-app - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - openiotsdk release lock-app-mbedtls \ - examples/lock-app/openiotsdk/build/chip-openiotsdk-lock-app-example.elf \ - /tmp/bloat_reports/ - - - name: Build tv-app example - id: build_tv_app - timeout-minutes: 10 - run: | - scripts/examples/openiotsdk_example.sh tv-app - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - openiotsdk release tv-app \ - examples/tv-app/openiotsdk/build/chip-openiotsdk-tv-app-example.elf \ - /tmp/bloat_reports/ - - - name: "Test: tv-app example" - if: github.event_name == 'workflow_dispatch' && steps.build_tv_app.outcome == 'success' - timeout-minutes: 10 - run: | - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up - scripts/run_in_python_env.sh out/venv \ - 'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap tv-app' - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down - - - name: Clean tv-app output - run: rm -rf examples/tv-app/openiotsdk/build - - - name: Build all-clusters-app example - id: build_all_clusters_app - timeout-minutes: 10 - run: | - scripts/examples/openiotsdk_example.sh all-clusters-app - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - openiotsdk release all-clusters-app \ - examples/all-clusters-app/openiotsdk/build/chip-openiotsdk-all-clusters-app-example.elf \ - /tmp/bloat_reports/ - - - name: "Test: all-clusters-app example" - if: github.event_name == 'workflow_dispatch' && steps.build_all_clusters_app.outcome == 'success' - timeout-minutes: 5 - run: | - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up - scripts/run_in_python_env.sh out/venv \ - 'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap all-clusters-app' - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down - - - name: Clean all-clusters-app output - run: rm -rf examples/all-clusters-app/openiotsdk/build - - - name: Build ota-requestor-app example - id: build_ota_requestor_app - timeout-minutes: 10 - run: | - scripts/examples/openiotsdk_example.sh -v 1 -V 0.0.1 ota-requestor-app - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - openiotsdk release ota-requestor-app \ - examples/ota-requestor-app/openiotsdk/build/chip-openiotsdk-ota-requestor-app-example.elf \ - /tmp/bloat_reports/ - - - name: Build unit tests (mbedtls) - # Disabled being tracked here: https://github.com/project-chip/connectedhomeip/issues/28026 - if: false - id: build_unit_tests_mbedtls - run: | - scripts/examples/openiotsdk_example.sh -b mbedtls unit-tests - - - name: Build the OTA provider (Linux) - id: build_ota_provider_app - if: steps.build_ota_requestor_app.outcome == 'success' - timeout-minutes: 10 - run: | - scripts/examples/gn_build_example.sh examples/ota-provider-app/linux/ out/ota-provider chip_config_network_layer_ble=false - - - name: "Test: lock-app example (mbedtls)" - if: github.event_name == 'workflow_dispatch' && steps.build_lock_app_mbedtls.outcome == 'success' - run: | - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up - scripts/run_in_python_env.sh out/venv \ - 'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap lock-app' - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down - - - name: "Test: ota-requestor-app example" - if: github.event_name == 'workflow_dispatch' && steps.build_ota_requestor_app.outcome == 'success' && steps.build_ota_provider_app.outcome == 'success' - timeout-minutes: 30 - run: | - mkdir out/binaries - cp examples/ota-requestor-app/openiotsdk/build/chip-openiotsdk-ota-requestor-app-example.elf out/binaries/ - scripts/examples/openiotsdk_example.sh -c -v 2 -V 0.0.2 ota-requestor-app - cp examples/ota-requestor-app/openiotsdk/build/chip-openiotsdk-ota-requestor-app-example.ota out/binaries/ - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up - scripts/run_in_python_env.sh out/venv \ - 'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -p out/binaries -v 2 -V 0.0.2 -C test -n ${TEST_NETWORK_NAME}tap ota-requestor-app' - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down - - - name: "Test: unit-tests (mbedtls)" - if: github.event_name == 'workflow_dispatch' && steps.build_unit_tests_mbedtls.outcome == 'success' - run: | - scripts/run_in_python_env.sh out/venv \ - 'scripts/examples/openiotsdk_example.sh --no-activate -C test unit-tests' - - - name: Build lock-app example (psa) - # Disabled being tracked here: https://github.com/project-chip/connectedhomeip/issues/28026 - if: false - id: build_lock_app_psa - run: | - scripts/examples/openiotsdk_example.sh -c -b psa lock-app - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - openiotsdk release lock-app-psa \ - examples/lock-app/openiotsdk/build/chip-openiotsdk-lock-app-example.elf \ - /tmp/bloat_reports/ - - - name: "Test: lock-app example (psa)" - if: github.event_name == 'workflow_dispatch' && steps.build_lock_app_psa.outcome == 'success' - run: | - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up - scripts/run_in_python_env.sh out/venv \ - 'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap lock-app' - scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down - - - name: Build unit tests (psa) - id: build_unit_tests_psa - run: | - scripts/examples/openiotsdk_example.sh -b psa unit-tests - - - name: "Test: unit-tests (psa)" - if: github.event_name == 'workflow_dispatch' && steps.build_unit_tests_psa.outcome == 'success' - run: | - scripts/run_in_python_env.sh out/venv \ - 'scripts/examples/openiotsdk_example.sh --no-activate -C test unit-tests' diff --git a/.github/workflows/examples-qpg.yaml b/.github/workflows/examples-qpg.yaml deleted file mode 100644 index 312c49329283cd..00000000000000 --- a/.github/workflows/examples-qpg.yaml +++ /dev/null @@ -1,90 +0,0 @@ -# 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: Build example - QPG - -on: - push: - branches: - - master - - 'v*-branch' - 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: - qpg: - name: QPG - - env: - BUILD_TYPE: gn_qpg - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - 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: qpg - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build QPG6105 example apps - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target qpg-qpg6105-lock \ - --target qpg-qpg6105-light \ - --target qpg-qpg6105-light-switch \ - --target qpg-qpg6105-thermostat \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Build Matter SDK library - run: | - config/qpg/chip-gn/build.sh - - - name: Prepare some bloat report from the previous builds - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - qpg qpg6105+debug lighting-app \ - out/qpg-qpg6105-light/chip-qpg6105-lighting-example.out \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - qpg qpg6105+debug lock-app \ - out/qpg-qpg6105-lock/chip-qpg6105-lock-example.out \ - /tmp/bloat_reports/ - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: QPG diff --git a/.github/workflows/examples-stm32.yaml b/.github/workflows/examples-stm32.yaml deleted file mode 100644 index 2e8f8576735bfe..00000000000000 --- a/.github/workflows/examples-stm32.yaml +++ /dev/null @@ -1,80 +0,0 @@ -# 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: Build example - stm32 - -on: - push: - branches: - - master - - 'v*-branch' - 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: - stm32: - name: stm32 - timeout-minutes: 60 - - env: - BUILD_TYPE: gn_stm32 - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - 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: stm32 - extra-submodule-parameters: --recursive - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build stm32 example apps - timeout-minutes: 20 - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target stm32-STM32WB5MM-DK-light build \ - " - - - name: Gather size reports - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - stm32 STM32WB5MM-DK light \ - out/stm32-stm32wb5mm-dk-light/chip-stm32-lighting-example.elf \ - /tmp/bloat_reports/ - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: stm32 diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml deleted file mode 100644 index a1d7244ab8f02f..00000000000000 --- a/.github/workflows/examples-telink.yaml +++ /dev/null @@ -1,314 +0,0 @@ -# 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: - - master - - 'v*-branch' - 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:81 - 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 3ed7686a9378de6be1368c912f9a42f998bbfb18" - - - name: Build example Telink (B92 retention) Air Quality Sensor App - # Run test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - continue-on-error: true - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and all PRs - 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 test for master and all PRs - 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 test for master and all PRs - 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 test for master and all PRs - continue-on-error: true - 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 test for master and all PRs - 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 test for master and all PRs - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - 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 test for master and s07641069 PRs - if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip' - continue-on-error: true - 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 diff --git a/.github/workflows/examples-tizen.yaml b/.github/workflows/examples-tizen.yaml deleted file mode 100644 index f0e4dfb3a206dd..00000000000000 --- a/.github/workflows/examples-tizen.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (c) 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: Build example - Tizen - -on: - push: - branches: - - master - - 'v*-branch' - 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: - tizen: - name: Tizen - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-tizen:81 - options: --user root - volumes: - - "/tmp/bloat_reports:/tmp/bloat_reports" - - "/tmp/output_binaries:/tmp/output_binaries" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: tizen - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build Tizen examples - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --enable-flashbundle \ - --target tizen-arm-all-clusters \ - --target tizen-arm-chip-tool-ubsan \ - --target tizen-arm-light-with-ui \ - build \ - --copy-artifacts-to out/artifacts \ - " - - - name: Bloat report - chip-tool - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - tizen arm chip-tool-ubsan out/tizen-arm-chip-tool-ubsan/chip-tool \ - /tmp/bloat_reports/ - - name: Bloat report - all-clusters-app - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - tizen arm all-clusters-app out/tizen-arm-all-clusters/chip-all-clusters-app \ - /tmp/bloat_reports/ - - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: Tizen diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml deleted file mode 100644 index c3871ad8815152..00000000000000 --- a/.github/workflows/full-android.yaml +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 2020 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: Full builds - Android - -on: - push: - branches: - - master - - 'v*-branch' - workflow_dispatch: - -concurrency: - group: full-${{ 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: - full_android: - name: Run - - env: - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64/ - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-android:81 - volumes: - - "/tmp/log_output:/tmp/test_logs" - - steps: - - uses: actions/checkout@v4 - name: Checkout - with: - token: ${{ github.token }} - # To use act like: - # act -j full_android - # - # Note you likely still need to have non submodules setup for the - # local machine, like: - # git submodule deinit --all - - uses: actions/checkout@v4 - if: ${{ env.ACT }} - name: Checkout (ACT for local build) - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: android - - - name: Cleanup pigweed CIPD packages - # This should not generally be needed, however android CI runs out of space - # We do not need pigweed cross compile here because we use android NDK - # compilers. Removing this package saves a significant amount of space. - continue-on-error: true - run: | - du -sh .environment/cipd/packages/arm - rm -rf .environment/cipd/packages/arm - - name: Build Android arm-chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm-chip-tool build" - - name: Clean out build output - run: rm -rf ./out examples/android/CHIPTool/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar - - name: Build Android arm-tv-casting-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm-tv-casting-app build" - - name: Clean out build output - run: rm -rf ./out examples/tv-casting-app/android/App/app/libs/jniLibs/* examples/tv-casting-app/android/App/app/libs/*.jar - - name: Build Android arm-tv-server - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm-tv-server build" - - name: Clean out build output - run: rm -rf ./out examples/tv-app/android/App/app/libs/jniLibs/* examples/tv-app/android/App/app/libs/*.jar - - name: Build Android arm64-tv-casting-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm64-tv-casting-app build" - - name: Clean out build output - run: rm -rf ./out examples/tv-casting-app/android/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar - - name: Build Android arm64-tv-server - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm64-tv-server build" - - name: Clean out build output - run: rm -rf ./out examples/tv-app/android/App/app/libs/jniLibs/* examples/tv-app/android/App/app/libs/*.jar - - name: Build Android arm64-chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm64-chip-tool build" - - name: Run Android build rule tests - run: | - ./scripts/run_in_build_env.sh \ - "ninja -C out/android-arm64-chip-tool build/chip/java/tests:java_build_test" - - name: Clean out build output - run: rm -rf ./out examples/android/CHIPTool/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar - - name: Build Android arm64-chip-test - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm64-chip-test build" - - name: Clean out build output - run: rm -rf ./out examples/android/CHIPTest/app/libs/jniLibs/* examples/android/CHIPTest/app/libs/*.jar diff --git a/.github/workflows/fuzzing-build.yaml b/.github/workflows/fuzzing-build.yaml deleted file mode 100644 index c37ca98e1a513e..00000000000000 --- a/.github/workflows/fuzzing-build.yaml +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright (c) 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: Fuzzing Builds - -on: - # For now, only manual triggers. - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - build_linux_fuzzing: - name: Build on Linux - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/tmp/log_output:/tmp/test_logs" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - run: apt-get update - - run: apt-get install --fix-missing llvm-10 clang-10 - - name: Try to ensure the objdir-clone dir exists - run: | - mkdir objdir-clone || true - - - name: Bootstrap - uses: ./.github/actions/bootstrap - - - name: Build all-clusters-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-all-clusters-no-ble-libfuzzer \ - build \ - --copy-artifacts-to objdir-clone \ - " - - name: Uploading binaries - uses: actions/upload-artifact@v4 - if: ${{ !env.ACT }} - with: - name: objdir-linux - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 - - build_darwin_fuzzing: - name: Build on Darwin - runs-on: macos-13 - if: github.actor != 'restyled-io[bot]' - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Environment - run: brew install llvm - - name: Try to ensure the objdir-clone dir exists - run: | - mkdir objdir-clone || true - - - name: Bootstrap - uses: ./.github/actions/bootstrap - - - name: Build all-clusters-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target darwin-x64-all-clusters-no-ble-asan-libfuzzer-clang \ - build \ - --copy-artifacts-to objdir-clone \ - " - - name: Uploading binaries - uses: actions/upload-artifact@v4 - if: ${{ !env.ACT }} - with: - name: crash-darwin - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml deleted file mode 100644 index ba0ade69c91b2c..00000000000000 --- a/.github/workflows/gradle-wrapper-validation.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: "Validate Gradle Wrapper" -on: - push: - branches: - - master - - 'v*-branch' - pull_request: - -jobs: - validation: - name: "Validation" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: Wandalen/wretry.action@v1.4.5 - name: Gradle Validation - continue-on-error: true - with: - action: gradle/wrapper-validation-action@v1 - attempt_limit: 3 - attempt_delay: 2000 diff --git a/.github/workflows/issue-labeler.yaml b/.github/workflows/issue-labeler.yaml deleted file mode 100644 index a92a4c212d187a..00000000000000 --- a/.github/workflows/issue-labeler.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: "Issue Labeler" -on: - issues: - types: [opened, edited] - -permissions: - issues: write - contents: read - -jobs: - triage: - runs-on: ubuntu-latest - steps: - - uses: github/issue-labeler@v3.4 #May not be the latest version - with: - configuration-path: .github/issue-labeler.yml - not-before: 2020-01-15T02:54:34Z - enable-versioned-regex: 0 - sync-labels: 1 - repo-token: ${{ github.token }} \ No newline at end of file diff --git a/.github/workflows/java-tests.yaml b/.github/workflows/java-tests.yaml deleted file mode 100644 index abf2e75027b489..00000000000000 --- a/.github/workflows/java-tests.yaml +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright (c) 2023 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: Java Tests - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - java_tests_linux: - name: Linux - - env: - TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt" - - if: github.actor != 'restyled-io[bot]' - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build-java:81 - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - bootstrap-log-name: bootstrap-logs-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }} - - name: Try to ensure the directories for core dumping exist and we - can write them. - run: | - mkdir /tmp/cores || true - sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true - mkdir objdir-clone || true - - name: Generate unit tests - run: | - scripts/run_in_build_env.sh \ - './scripts/build/build_examples.py \ - --target linux-x64-tests \ - gen \ - ' - - name: Build unit tests - run: scripts/run_in_build_env.sh 'ninja -C out/linux-x64-tests src:java_controller_tests' - - - name: Run unit tests - # TODO: this direct path loading is not maintainable. Our build system should define and - # support test classes. - run: | - $JAVA_PATH/bin/java \ - -cp 'third_party/java_deps/artifacts/*:out/linux-x64-tests/lib/src/controller/java/*' \ - org.junit.runner.JUnitCore \ - matter.tlv.TlvWriterTest \ - matter.tlv.TlvReadWriteTest \ - matter.tlv.TlvReaderTest \ - matter.jsontlv.JsonToTlvToJsonTest \ - matter.onboardingpayload.ManualCodeTest \ - matter.onboardingpayload.QRCodeTest - - name: Build Java Matter Controller and all clusters app - run: | - scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv' - scripts/run_in_python_env.sh out/venv 'pip install -r scripts/setup/requirements.build.txt' - scripts/run_in_python_env.sh out/venv 'pip install colorama' - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-java-matter-controller \ - --target linux-x64-lit-icd-ipv6only \ - build \ - " - - name: Build Kotlin Matter Controller - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-kotlin-matter-controller \ - build \ - " - - name: Run Discover Commissionables Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "discover" \ - --tool-args "commissionables" \ - --factoryreset \ - ' - - name: Run Pairing Onnetwork Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "pairing" \ - --tool-args "onnetwork-long --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run IM Invoke Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-invoke --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run IM Extendable Invoke Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-extendable-invoke --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run IM Read Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-read --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 3000" \ - --factoryreset \ - ' - - name: Run IM Write Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-write --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run IM Subscribe Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-subscribe --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 3000" \ - --factoryreset \ - ' - - name: Run Pairing AlreadyDiscovered Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "pairing" \ - --tool-args "already-discovered --nodeid 1 --setup-pin-code 20202021 --address ::1 --port 5540 -t 1000" \ - --factoryreset \ - ' - # Disabled due to failure: https://github.com/project-chip/connectedhomeip/issues/27361 - # - name: Run Pairing Address-PaseOnly Test - # run: | - # scripts/run_in_python_env.sh out/venv \ - # './scripts/tests/run_java_test.py \ - # --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - # --app-args "--discriminator 3840 --interface-id -1" \ - # --tool-path out/linux-x64-java-matter-controller \ - # --tool-cluster "pairing" \ - # --tool-args "address-paseonly --nodeid 1 --setup-pin-code 20202021 --address ::1 --port 5540 -t 1000" \ - # --factoryreset \ - # ' - - name: Run Pairing SetupQRCode Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "pairing" \ - --tool-args "code --nodeid 1 --setup-payload MT:-24J0AFN00KA0648G00 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \ - --factoryreset \ - ' - - name: Run Pairing ManualCode Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "pairing" \ - --tool-args "code --nodeid 1 --setup-payload 34970112332 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \ - --factoryreset \ - ' - - name: Run Pairing ICD Onnetwork Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_java_test.py \ - --app out/linux-x64-lit-icd-ipv6only/lit-icd-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-java-matter-controller \ - --tool-cluster "pairing" \ - --tool-args "onnetwork-long --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run Pairing Onnetwork Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_kotlin_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-kotlin-matter-controller \ - --tool-cluster "pairing" \ - --tool-args "onnetwork-long --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run Kotlin IM Invoke Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_kotlin_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-kotlin-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-invoke --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run Kotlin IM Read Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_kotlin_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-kotlin-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-read --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 3000" \ - --factoryreset \ - ' - - name: Run Kotlin IM Write Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_kotlin_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-kotlin-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-write --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \ - --factoryreset \ - ' - - name: Run Kotlin IM Subscribe Test - run: | - scripts/run_in_python_env.sh out/venv \ - './scripts/tests/run_kotlin_test.py \ - --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \ - --app-args "--discriminator 3840 --interface-id -1" \ - --tool-path out/linux-x64-kotlin-matter-controller \ - --tool-cluster "im" \ - --tool-args "onnetwork-long-im-subscribe --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 3000" \ - --factoryreset \ - ' - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-linux-java-controller - path: /tmp/cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Uploading objdir for debugging - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-objdir-linux-java-controller - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 diff --git a/.github/workflows/kotlin-style.yaml b/.github/workflows/kotlin-style.yaml deleted file mode 100644 index a8d328268951bf..00000000000000 --- a/.github/workflows/kotlin-style.yaml +++ /dev/null @@ -1,70 +0,0 @@ -name: Kotlin - -on: - pull_request: - paths: - - "**/*.kt" - - ".github/workflows/kotlin-style.yaml" - - "kotlin-detect-config.yaml" - -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: - detekt: - name: Static code analysis - runs-on: ubuntu-latest - - steps: - - name: "checkout" - uses: actions/checkout@v4 - - - name: "detekt" - uses: natiginfo/action-detekt-all@1.23.6 - # Detekt seems not to like circular symlinks, so we set up - # explicit paths below - # - # In particular, if symlinks exist and recurse, detekt tries to - # follow, so for example `examples/android/CHIPTest` as a path - # will never end (and eventually run out of HEAP) because - # `examples/android/CHIPTest/third_party/connectedhomeip` is - # circular - with: - args: --parallel --build-upon-default-config --config kotlin-detect-config.yaml --input examples/android/CHIPTest/app,examples/android/CHIPTool,examples/java-matter-controller/java,src/controller/java - - ktlint: - name: "Format check" - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-java@v4 - with: - distribution: 'adopt' - java-version: '17' - - - name: Download ktfmt - run: | - cd /tmp - wget "https://repo1.maven.org/maven2/com/facebook/ktfmt/0.44/ktfmt-0.44-jar-with-dependencies.jar" - - - name: Format kotlin files - run: | - find src examples -name '*.kt' \ - | xargs java -jar /tmp/ktfmt-0.44-jar-with-dependencies.jar --google-style - - - name: Ensure git works in current working directory - run: git config --global --add safe.directory `pwd` - - - name: Check for uncommited changes - run: | - git add . - # Show the full diff - git diff-index -p HEAD -- - # Also show just the files that are different, to make it easy - # to tell at a glance what might be going on. And throw in - # --exit-code to make this job fail if there is a difference. - git diff-index --exit-code HEAD -- diff --git a/.github/workflows/labeler.yaml b/.github/workflows/labeler.yaml deleted file mode 100644 index 59f56fdb5407ae..00000000000000 --- a/.github/workflows/labeler.yaml +++ /dev/null @@ -1,15 +0,0 @@ -name: "Pull Request Labeler" -on: -- pull_request_target - -jobs: - triage: - name: Label Triage - permissions: - contents: read - pull-requests: write - runs-on: ubuntu-latest - steps: - - uses: actions/labeler@v5 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index a914e5ae369b50..00000000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,348 +0,0 @@ -# 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: Lint Code Base - -on: - push: - branches: - - master - - 'v*-branch' - 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: - code-lints: - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - # Bootstrap and checkout for internal scripts (like idl_lint) - # to run - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Check for orphaned gn files - if: always() - # We should enforce that ALL new files are referenced in our build scripts. - # Several things do not have a clear fix path: - # - various platform implementations (including darwin-specific files as they - # are not using GN) - # - app/clusters (they are fetched dynamically - this should probably be fixed) - # - # All the rest of the exceptions should be driven down to 0: chip should fully - # be defined in build rules. - # - # This check enforces that for any newly added file, it must be part of some - # BUILD.gn file - run: | - ./scripts/run_in_build_env.sh "./scripts/tools/not_known_to_gn.py \ - src \ - --skip-dir app/clusters \ - --skip-dir darwin \ - --skip-dir include \ - --skip-dir platform/Ameba \ - --skip-dir platform/android \ - --skip-dir platform/ASR \ - --skip-dir platform/Beken \ - --skip-dir platform/bouffalolab \ - --skip-dir platform/cc13xx_26xx \ - --skip-dir platform/cc32xx \ - --skip-dir platform/Darwin \ - --skip-dir platform/ESP32 \ - --skip-dir platform/fake \ - --skip-dir platform/FreeRTOS \ - --skip-dir platform/Infineon \ - --skip-dir platform/Linux \ - --skip-dir platform/mbed \ - --skip-dir platform/mt793x \ - --skip-dir platform/nxp \ - --skip-dir platform/OpenThread \ - --skip-dir platform/qpg \ - --skip-dir platform/silabs \ - --skip-dir platform/telink \ - --skip-dir platform/webos \ - --skip-dir platform/Zephyr \ - --skip-dir test_driver \ - --skip-dir platform/NuttX \ - --known-failure app/app-platform/ContentApp.cpp \ - --known-failure app/app-platform/ContentApp.h \ - --known-failure app/app-platform/ContentAppPlatform.cpp \ - --known-failure app/app-platform/ContentAppPlatform.h \ - --known-failure controller/ExamplePersistentStorage.cpp \ - --known-failure controller/ExamplePersistentStorage.h \ - --known-failure app/AttributeAccessToken.h \ - --known-failure app/CommandResponseSender.h \ - --known-failure app/CommandSenderLegacyCallback.h \ - --known-failure app/ReadHandler.h \ - --known-failure app/reporting/reporting.cpp \ - --known-failure app/reporting/tests/MockReportScheduler.cpp \ - --known-failure app/reporting/tests/MockReportScheduler.h \ - --known-failure app/util/attribute-storage.cpp \ - --known-failure app/util/attribute-storage-detail.h \ - --known-failure app/util/attribute-storage.h \ - --known-failure app/util/attribute-table.cpp \ - --known-failure app/util/attribute-table-detail.h \ - --known-failure app/util/attribute-table.h \ - --known-failure app/util/binding-table.cpp \ - --known-failure app/util/binding-table.h \ - --known-failure app/util/config.h \ - --known-failure app/util/DataModelHandler.cpp \ - --known-failure app/util/DataModelHandler.h \ - --known-failure app/util/ember-compatibility-functions.cpp \ - --known-failure app/util/ember-compatibility-functions.h \ - --known-failure app/util/ember-global-attribute-access-interface.cpp \ - --known-failure app/util/ember-global-attribute-access-interface.h \ - --known-failure app/util/ember-io-storage.cpp \ - --known-failure app/util/ember-io-storage.h \ - --known-failure app/util/endpoint-config-api.h \ - --known-failure app/util/generic-callbacks.h \ - --known-failure app/util/generic-callback-stubs.cpp \ - --known-failure app/util/im-client-callbacks.h \ - --known-failure app/util/IMClusterCommandHandler.h \ - --known-failure app/util/util.cpp \ - --known-failure app/util/util.h \ - --known-failure app/WriteHandler.h \ - --known-failure platform/DeviceSafeQueue.cpp \ - --known-failure platform/DeviceSafeQueue.h \ - --known-failure platform/GLibTypeDeleter.h \ - --known-failure platform/SingletonConfigurationManager.cpp \ - " - - - name: Check for matter lint errors - if: always() - run: | - for idl_file in $(find . -name '*.matter'); do - # TODO: all these conformance failures should be fixed - # Issues exist for most of them: - # https://github.com/project-chip/connectedhomeip/issues/19176 - # https://github.com/project-chip/connectedhomeip/issues/19175 - # https://github.com/project-chip/connectedhomeip/issues/19173 - if [ "$idl_file" = './examples/log-source-app/log-source-common/log-source-app.matter' ]; then continue; fi - if [ "$idl_file" = './examples/placeholder/linux/apps/app1/config.matter' ]; then continue; fi - if [ "$idl_file" = './examples/placeholder/linux/apps/app2/config.matter' ]; then continue; fi - if [ "$idl_file" = './examples/thermostat/thermostat-common/thermostat.matter' ]; then continue; fi - if [ "$idl_file" = './examples/window-app/common/window-app.matter' ]; then continue; fi - # Example is intentionally not spe compliant for use in cert testing - if [ "$idl_file" = './examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter' ]; then continue; fi - - # Test files are intentionally small and not spec-compilant, just parse-compliant - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/cluster_struct_attribute.matter" ]; then continue; fi - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/global_struct_attribute.matter" ]; then continue; fi - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/optional_argument.matter" ]; then continue; fi - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/several_clusters.matter" ]; then continue; fi - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/simple_attribute.matter" ]; then continue; fi - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/large_lighting_app.matter" ]; then continue; fi - if [ "$idl_file" = "./scripts/py_matter_idl/matter_idl/tests/inputs/large_all_clusters_app.matter" ]; then continue; fi - - ./scripts/run_in_build_env.sh "./scripts/idl_lint.py --log-level warn $idl_file" >/dev/null || exit 1 - done - - - name: Check broken links - # On-push disabled until the job can run fully green - # At that point the step should be enabled. - if: github.event_name == 'workflow_dispatch' - uses: gaurav-nelson/github-action-markdown-link-check@v1 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: Check for incorrect error use in VerifyOrExit - if: always() - run: | - git grep -I -n "VerifyOrExit(.*, [A-Za-z]*_ERROR" -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of PRI*8, which are not supported on some libcs. - if: always() - run: | - git grep -I -n "PRI.8" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)third_party/lwip/repo/lwip/src/include/lwip/arch.h' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of PRI*16, which are not supported on some - libcs. - if: always() - run: | - git grep -I -n "PRI.16" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)third_party/lwip/repo/lwip/src/include/lwip/arch.h' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of PRI*64, which are not supported on some - libcs. - if: always() - run: | - # TODO: MessageDefHelper should ideally not be excluded here. - # TODO: chip_im_initiatore should ideally not be excluded here. - # TODO: TLVDebug should ideally not be excluded here. - # TODO: protocol_decoder.cpp should ideally not be excluded here. - # TODO: PersistentStorageMacros.h should ideally not be excluded here. - git grep -I -n "PRI.64" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)examples/chip-tool' ':(exclude)examples/tv-casting-app' ':(exclude)src/app/MessageDef/MessageDefHelper.cpp' ':(exclude)src/app/tests/integration/chip_im_initiator.cpp' ':(exclude)src/lib/core/TLVDebug.cpp' ':(exclude)src/lib/dnssd/tests/TestTxtFields.cpp' ':(exclude)src/lib/format/protocol_decoder.cpp' ':(exclude)src/lib/support/PersistentStorageMacros.h' ':(exclude)src/messaging/tests/echo/echo_requester.cpp' ':(exclude)src/platform/Linux' ':(exclude)src/platform/Ameba' ':(exclude)src/platform/ESP32' ':(exclude)src/platform/Darwin' ':(exclude)src/darwin' ':(exclude)src/platform/webos' ':(exclude)zzz_generated/chip-tool' ':(exclude)src/tools/chip-cert/Cmd_PrintCert.cpp' ':(exclude)src/platform/NuttX' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: Check for use of %zu, which are not supported on some libcs. - if: always() - run: | - git grep -I -n "%zu" -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 - - # Comments like '{{! ... }}' should be used in zap files - - name: Do not allow TODO in generated files - if: always() - run: | - git grep -n 'TODO:' -- ./zzz_generated './*/zap-generated/*' && exit 1 || exit 0 - - - name: Check for disallowed include files - if: always() - run: scripts/tools/check_includes.sh - - - name: Check for zcl.json and extension sync status - if: always() - run: scripts/tools/check_zcl_file_sync.py . - - - name: Ensure all PICS are set for tests (to true or false) - if: always() - run: | - scripts/tools/check_test_pics.py src/app/tests/suites/certification/ci-pics-values src/app/tests/suites/certification/PICS.yaml - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of 0x%u and the like, which lead to misleading - output. - if: always() - run: | - git grep -I -n '0x%[0-9l.*-]*[^xX"0-9l.*-]' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of '"0x" PRIu*' and the like, which lead to - misleading output. - if: always() - run: | - git grep -I -n '0x%[0-9-]*" *PRI[^xX]' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. - - name: - Check for use of NSLog instead of Matter logging in Matter - framework - if: always() - run: | - git grep -n 'NSLog(' -- src/darwin/Framework/CHIP && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself, as well as excluding the files - # that implement the type-safe accessors - - name: - Check for use of 'emberAfReadAttribute' instead of the - type-safe getters - if: always() - run: | - git grep -I -n 'emberAfReadAttribute' -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)src/app/util/attribute-table.h' ':(exclude)zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp' ':(exclude)src/app/zap-templates/templates/app/attributes/Accessors-src.zapt' ':(exclude)src/app/util/attribute-table.cpp' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself, as well as excluding the files - # that implement the type-safe accessors, attribute writing from the wire, and some - # Pigweed RPC code that seems hard to update. - - name: - Check for use of 'emberAfWriteAttribute' instead of the - type-safe setters - if: always() - run: | - git grep -I -n 'emberAfWriteAttribute' -- './*' \ - ':(exclude).github/workflows/lint.yml' \ - ':(exclude)examples/common/pigweed/rpc_services/Attributes.h' \ - ':(exclude)src/app/codegen-data-model-provider/CodegenDataModelProvider_Write.cpp' \ - ':(exclude)src/app/codegen-data-model-provider/tests/EmberReadWriteOverride.cpp' \ - ':(exclude)src/app/util/attribute-table.cpp' \ - ':(exclude)src/app/util/attribute-table.h' \ - ':(exclude)src/app/util/ember-compatibility-functions.cpp' \ - ':(exclude)src/app/util/mock/CodegenEmberMocks.cpp' \ - ':(exclude)src/app/zap-templates/templates/app/attributes/Accessors-src.zapt' \ - ':(exclude)zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp' \ - && exit 1 || exit 0 - - # Run ruff python linter - - name: Check for errors using ruff Python linter - if: always() - run: | - ruff check - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of "SuccessOrExit(CHIP_ERROR_*)", which should - probably be "SuccessOrExit(err = CHIP_ERROR_*)" - if: always() - run: | - git grep -I -n 'SuccessOrExit(CHIP_ERROR' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. And we want to exclude this file, - # to avoid our grep regexp matching itself. - - name: - Check for use of - "SuccessOrExit(something-without-assignment(", which should - probably be "SuccessOrExit(err = something(" - if: always() - run: | - git grep -I -n 'SuccessOrExit([^=)]*(' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 - - # git grep exits with 0 if it finds a match, but we want - # to fail (exit nonzero) on match. - - name: - Check for use of "using namespace" outside of a class/function - in headers. - if: always() - run: | - # Various platforms have `using namespace chip::Ble` in their BLEManager* headers; just exclude those for now. - # - # Exclude platform openiotsdk bits that do this in their persistent storage header. - # - # Also exclude examples (for now) and third_party, which have various instances of this. - # - # Ignore uses of `System::Clock::Literals`, because that's the only way to have things using _ms32 or whatnot - # in a header file. - git grep -I -n -e '^using namespace' --and --not -e 'System::Clock::Literals' -- './**/*.h' ':(exclude)src/platform/*/BLEManager*.h' ':(exclude)src/platform/openiotsdk/KVPsaPsStore.h' ':(exclude)./examples' ':(exclude)./third_party' && exit 1 || exit 0 diff --git a/.github/workflows/minimal-build.yaml b/.github/workflows/minimal-build.yaml deleted file mode 100644 index dae8a2b8ce0a7f..00000000000000 --- a/.github/workflows/minimal-build.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2023 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: Minimal Build (Linux / configure) - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -jobs: - minimal-all-clusters: - name: Linux / configure build of all-clusters-app - - if: github.actor != 'restyled-io[bot]' - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build-minimal:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Checkout submodules # but don't bootstrap! - uses: ./.github/actions/checkout-submodules - with: - platform: linux - - - name: Configure and build All Clusters App - run: | - CC=gcc CXX=g++ scripts/configure --project=examples/all-clusters-app/linux --enable-recommended=no && ./ninja-build - - minimal-network-manager: - name: Linux / configure build of network-manager-app - - if: github.actor != 'restyled-io[bot]' - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build-minimal:81 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Checkout submodules # but don't bootstrap! - uses: ./.github/actions/checkout-submodules - with: - platform: linux - - - name: Configure and build Network Manager App - run: | - CC=gcc CXX=g++ scripts/configure --project=examples/network-manager-app/linux --enable-recommended=no && ./ninja-build diff --git a/.github/workflows/protocol_compatibility.yaml b/.github/workflows/protocol_compatibility.yaml deleted file mode 100644 index 6c8960072ec3be..00000000000000 --- a/.github/workflows/protocol_compatibility.yaml +++ /dev/null @@ -1,49 +0,0 @@ -# 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: Backwards compatibility check -on: - pull_request: - paths: - - "src/controller/data_model/controller-clusters.matter" - -jobs: - check_clusters_matter: - name: Check controller-clusters.matter backwards compatibility - runs-on: ubuntu-latest - if: github.event.pull_request && !(contains(github.event.pull_request.labels.*.name, 'skip-protocol-compatibility')) - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup python - uses: actions/setup-python@v5 - with: - python-version: 3.11 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install click coloredlogs lark - - name: Create old/new copies - run: | - mkdir -p out - cp src/controller/data_model/controller-clusters.matter out/new_version.matter - wget '${{github.event.pull_request.diff_url}}' --output-document out/patch.diff - patch -p1 --reverse /dev/null || (sudo apt update && sudo apt install curl -y) - curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ - && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ - && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ - && sudo apt update \ - && sudo apt install gh -y - - - name: Tag Release & Generate Notes - env: - GH_TOKEN: ${{ github.token }} - run: | - export BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD) - echo "Tagging against branch: $BRANCH_NAME" - ./scripts/tagging/tag_new_release.sh --generate-notes --target "$BRANCH_NAME" -d # Note this is a draft for now. - - diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml deleted file mode 100644 index 63957b64d8f00d..00000000000000 --- a/.github/workflows/tests.yaml +++ /dev/null @@ -1,629 +0,0 @@ -# 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: Tests - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - test_suites_linux: - name: Test Suites - Linux - - strategy: - matrix: - build_variant: [no-ble-no-shell-tsan-clang] - chip_tool: [""] - env: - BUILD_VARIANT: ${{matrix.build_variant}} - CHIP_TOOL_VARIANT: ${{matrix.chip_tool}} - TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt" - LSAN_OPTIONS: detect_leaks=1 - - if: github.actor != 'restyled-io[bot]' - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build:81 - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Checkout - uses: actions/checkout@v4 - # To use act like: - # act -j test_suites_linux - # - # Note you likely still need to have non submodules setup for the - # local machine, like: - # git submodule deinit --all - - uses: actions/checkout@v4 - if: ${{ env.ACT }} - name: Checkout (ACT for local build) - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - bootstrap-log-name: bootstrap-logs-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }} - - name: Try to ensure the directories for core dumping exist and we - can write them. - run: | - mkdir /tmp/cores || true - sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true - mkdir objdir-clone || true - - - name: Validate that xml are parsable - # The sub-items being run here are the same as the input XMLs listed - # at src/app/zap-templates/zcl/zcl.json - # - # This ensures that the syntax of the XML can always be parsed/validated, however it - # does not enforce that the content is understood (that part is covered by parser - # unit tests) - # - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/py_matter_idl/matter_idl/zapxml_parser.py \ - --no-print \ - --log-level info \ - src/app/zap-templates/zcl/data-model/chip/global-attributes.xml \ - src/app/zap-templates/zcl/data-model/chip/chime-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml \ - src/app/zap-templates/zcl/data-model/chip/global-enums.xml \ - src/app/zap-templates/zcl/data-model/chip/global-structs.xml \ - src/app/zap-templates/zcl/data-model/chip/semantic-tag-namespace-enums.xml \ - src/app/zap-templates/zcl/data-model/chip/access-control-definitions.xml \ - src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/administrator-commissioning-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/air-quality-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/application-basic-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/application-launcher-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/audio-output-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/ballast-configuration-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/basic-information-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/binding-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/bridged-device-basic-information.xml \ - src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/chip-ota.xml \ - src/app/zap-templates/zcl/data-model/chip/chip-types.xml \ - src/app/zap-templates/zcl/data-model/chip/channel-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/clusters-extensions.xml \ - src/app/zap-templates/zcl/data-model/chip/color-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/commissioner-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/concentration-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/content-launch-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/content-app-observer-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/content-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/descriptor-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/device-energy-management-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/device-energy-management-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/diagnostic-logs-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/dishwasher-alarm-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/measurement-and-sensing.xml \ - src/app/zap-templates/zcl/data-model/chip/microwave-oven-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/microwave-oven-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/ecosystem-information-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/energy-evse-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/energy-evse-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/ethernet-network-diagnostics-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/fan-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/fixed-label-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/flow-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/general-commissioning-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/general-diagnostics-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/global-attributes.xml \ - src/app/zap-templates/zcl/data-model/chip/groups-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/group-key-mgmt-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/illuminance-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/keypad-input-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/laundry-washer-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/laundry-dryer-controls-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/level-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/localization-configuration-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/low-power-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/media-input-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/messages-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/mode-select-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/network-commissioning-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/occupancy-sensing-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/onoff-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/operational-credentials-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/operational-state-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/operational-state-oven-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/operational-state-rvc-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/oven-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/power-topology-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/pressure-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/power-source-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/power-source-configuration-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/proxy-configuration-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/proxy-discovery-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/proxy-valid-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/pump-configuration-and-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/refrigerator-and-temperature-controlled-cabinet-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/refrigerator-alarm.xml \ - src/app/zap-templates/zcl/data-model/chip/relative-humidity-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/rvc-clean-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/rvc-run-mode-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/scene.xml \ - src/app/zap-templates/zcl/data-model/chip/smoke-co-alarm-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/software-diagnostics-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/target-navigator-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/temperature-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/test-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/thermostat-user-interface-configuration-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/thread-border-router-management-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/thread-network-diagnostics-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/thread-network-directory-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/time-format-localization-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/time-synchronization-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/timer-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/user-label-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/unit-localization-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/wake-on-lan-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/washer-controls-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/water-heater-management-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/wifi-network-diagnostics-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/wifi-network-management-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/window-covering.xml \ - src/app/zap-templates/zcl/data-model/chip/temperature-control-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/matter-devices.xml \ - src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/sample-mei-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/electrical-energy-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/electrical-power-measurement-cluster.xml \ - src/app/zap-templates/zcl/data-model/chip/zone-management-cluster.xml \ - " - - name: Build Apps - run: | - scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv' - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT} \ - --target linux-x64-all-clusters-${BUILD_VARIANT} \ - --target linux-x64-lock-${BUILD_VARIANT} \ - --target linux-x64-ota-provider-${BUILD_VARIANT} \ - --target linux-x64-ota-requestor-${BUILD_VARIANT} \ - --target linux-x64-tv-app-${BUILD_VARIANT} \ - --target linux-x64-bridge-${BUILD_VARIANT} \ - --target linux-x64-lit-icd-${BUILD_VARIANT} \ - --target linux-x64-microwave-oven-${BUILD_VARIANT} \ - --target linux-x64-rvc-${BUILD_VARIANT} \ - --target linux-x64-network-manager-${BUILD_VARIANT} \ - build \ - --copy-artifacts-to objdir-clone \ - " - - - name: Run Tests using the python parser sending commands to chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/tests/run_test_suite.py \ - --runner chip_tool_python \ - --chip-tool ./out/linux-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT}/chip-tool \ - run \ - --iterations 1 \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/linux-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - --lock-app ./out/linux-x64-lock-${BUILD_VARIANT}/chip-lock-app \ - --ota-provider-app ./out/linux-x64-ota-provider-${BUILD_VARIANT}/chip-ota-provider-app \ - --ota-requestor-app ./out/linux-x64-ota-requestor-${BUILD_VARIANT}/chip-ota-requestor-app \ - --tv-app ./out/linux-x64-tv-app-${BUILD_VARIANT}/chip-tv-app \ - --bridge-app ./out/linux-x64-bridge-${BUILD_VARIANT}/chip-bridge-app \ - --lit-icd-app ./out/linux-x64-lit-icd-${BUILD_VARIANT}/lit-icd-app \ - --microwave-oven-app ./out/linux-x64-microwave-oven-${BUILD_VARIANT}/chip-microwave-oven-app \ - --rvc-app ./out/linux-x64-rvc-${BUILD_VARIANT}/chip-rvc-app \ - --network-manager-app ./out/linux-x64-network-manager-${BUILD_VARIANT}/matter-network-manager-app \ - " - - - name: Run purposeful failure tests using the python parser sending commands to chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/tests/run_test_suite.py \ - --runner chip_tool_python \ - --include-tags PURPOSEFUL_FAILURE \ - --chip-tool ./out/linux-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT}/chip-tool \ - run \ - --iterations 1 \ - --expected-failures 3 \ - --keep-going \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/linux-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - " - - - name: Run Tests using chip-repl (skip slow) - if: github.event_name == 'pull_request' - run: | - ./scripts/run_in_python_env.sh out/venv \ - "./scripts/tests/run_test_suite.py \ - --runner chip_repl_python \ - --exclude-tags MANUAL \ - --exclude-tags FLAKY \ - --exclude-tags IN_DEVELOPMENT \ - --exclude-tags EXTRA_SLOW \ - --exclude-tags SLOW \ - --exclude-tags PURPOSEFUL_FAILURE \ - run \ - --iterations 1 \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/linux-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - --lock-app ./out/linux-x64-lock-${BUILD_VARIANT}/chip-lock-app \ - --ota-provider-app ./out/linux-x64-ota-provider-${BUILD_VARIANT}/chip-ota-provider-app \ - --ota-requestor-app ./out/linux-x64-ota-requestor-${BUILD_VARIANT}/chip-ota-requestor-app \ - --tv-app ./out/linux-x64-tv-app-${BUILD_VARIANT}/chip-tv-app \ - --bridge-app ./out/linux-x64-bridge-${BUILD_VARIANT}/chip-bridge-app \ - --lit-icd-app ./out/linux-x64-lit-icd-${BUILD_VARIANT}/lit-icd-app \ - --microwave-oven-app ./out/linux-x64-microwave-oven-${BUILD_VARIANT}/chip-microwave-oven-app \ - --rvc-app ./out/linux-x64-rvc-${BUILD_VARIANT}/chip-rvc-app \ - --network-manager-app ./out/linux-x64-network-manager-${BUILD_VARIANT}/matter-network-manager-app \ - " - - name: Run Tests using chip-repl (including slow) - if: github.event_name == 'push' - run: | - ./scripts/run_in_python_env.sh out/venv \ - "./scripts/tests/run_test_suite.py \ - --runner chip_repl_python \ - run \ - --iterations 1 \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/linux-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - --lock-app ./out/linux-x64-lock-${BUILD_VARIANT}/chip-lock-app \ - --ota-provider-app ./out/linux-x64-ota-provider-${BUILD_VARIANT}/chip-ota-provider-app \ - --ota-requestor-app ./out/linux-x64-ota-requestor-${BUILD_VARIANT}/chip-ota-requestor-app \ - --tv-app ./out/linux-x64-tv-app-${BUILD_VARIANT}/chip-tv-app \ - --bridge-app ./out/linux-x64-bridge-${BUILD_VARIANT}/chip-bridge-app \ - --lit-icd-app ./out/linux-x64-lit-icd-${BUILD_VARIANT}/lit-icd-app \ - --microwave-oven-app ./out/linux-x64-microwave-oven-${BUILD_VARIANT}/chip-microwave-oven-app \ - --rvc-app ./out/linux-x64-rvc-${BUILD_VARIANT}/chip-rvc-app \ - --network-manager-app ./out/linux-x64-network-manager-${BUILD_VARIANT}/matter-network-manager-app \ - " - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }} - path: /tmp/cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Uploading objdir for debugging - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-objdir-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }} - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 - - test_suites_darwin: - name: Test Suites - Darwin - - strategy: - matrix: - build_variant: [no-ble-no-shell-asan-clang, no-ble-no-shell-tsan-clang] - chip_tool: [""] - env: - BUILD_VARIANT: ${{matrix.build_variant}} - CHIP_TOOL_VARIANT: ${{matrix.chip_tool}} - TSAN_OPTIONS: "halt_on_error=1" - LSAN_OPTIONS: detect_leaks=1 suppressions=scripts/tests/chiptest/lsan-mac-suppressions.txt - - if: github.actor != 'restyled-io[bot]' - runs-on: macos-13 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Environment - # coreutils for stdbuf - run: brew install coreutils - - name: - Try to ensure the directories for core dumping and diagnostic - log collection exist and we can write them. - run: | - sudo chown ${USER} /cores || true - mkdir -p ~/Library/Logs/DiagnosticReports || true - mkdir objdir-clone || true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - bootstrap-log-name: bootstrap-logs-darwin-${{ matrix.build_variant }}${{ matrix.chip_tool }} - - - - name: Build Apps - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target darwin-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT} \ - --target darwin-x64-all-clusters-${BUILD_VARIANT} \ - --target darwin-x64-lock-${BUILD_VARIANT} \ - --target darwin-x64-ota-provider-${BUILD_VARIANT} \ - --target darwin-x64-ota-requestor-${BUILD_VARIANT} \ - --target darwin-x64-tv-app-${BUILD_VARIANT} \ - --target darwin-x64-bridge-${BUILD_VARIANT} \ - --target darwin-x64-lit-icd-${BUILD_VARIANT} \ - --target darwin-x64-microwave-oven-${BUILD_VARIANT} \ - --target darwin-x64-rvc-${BUILD_VARIANT} \ - --target darwin-x64-network-manager-${BUILD_VARIANT} \ - build \ - --copy-artifacts-to objdir-clone \ - " - - - name: Run Tests using the python parser sending commands to chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/tests/run_test_suite.py \ - --runner chip_tool_python \ - --chip-tool ./out/darwin-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT}/chip-tool \ - --target-skip-glob '{Test_TC_DGTHREAD_2_1,Test_TC_DGTHREAD_2_2,Test_TC_DGTHREAD_2_3,Test_TC_DGTHREAD_2_4}' \ - run \ - --iterations 1 \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/darwin-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - --lock-app ./out/darwin-x64-lock-${BUILD_VARIANT}/chip-lock-app \ - --ota-provider-app ./out/darwin-x64-ota-provider-${BUILD_VARIANT}/chip-ota-provider-app \ - --ota-requestor-app ./out/darwin-x64-ota-requestor-${BUILD_VARIANT}/chip-ota-requestor-app \ - --tv-app ./out/darwin-x64-tv-app-${BUILD_VARIANT}/chip-tv-app \ - --bridge-app ./out/darwin-x64-bridge-${BUILD_VARIANT}/chip-bridge-app \ - --lit-icd-app ./out/darwin-x64-lit-icd-${BUILD_VARIANT}/lit-icd-app \ - --microwave-oven-app ./out/darwin-x64-microwave-oven-${BUILD_VARIANT}/chip-microwave-oven-app \ - --rvc-app ./out/darwin-x64-rvc-${BUILD_VARIANT}/chip-rvc-app \ - --network-manager-app ./out/darwin-x64-network-manager-${BUILD_VARIANT}/matter-network-manager-app \ - " - - - name: Run purposeful failure tests using the python parser sending commands to chip-tool - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/tests/run_test_suite.py \ - --runner chip_tool_python \ - --include-tags PURPOSEFUL_FAILURE \ - --chip-tool ./out/darwin-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT}/chip-tool \ - run \ - --iterations 1 \ - --expected-failures 3 \ - --keep-going \ - --test-timeout-seconds 120 \ - --all-clusters-app ./out/darwin-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ - " - - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-darwin-${{ matrix.build_variant }}${{ matrix.chip_tool }} - path: /cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Uploading diagnostic logs - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-log-darwin-${{ matrix.build_variant }}${{ matrix.chip_tool }} - path: ~/Library/Logs/DiagnosticReports/ - - name: Uploading objdir for debugging - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-objdir-darwin-${{ matrix.build_variant }}${{ matrix.chip_tool }} - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 - - repl_tests_linux: - name: REPL Tests - Linux - - env: - TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt" - - if: github.actor != 'restyled-io[bot]' - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build:81 - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 - net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - bootstrap-log-name: bootstrap-logs-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }} - - name: Try to ensure the directories for core dumping exist and we - can write them. - run: | - mkdir /tmp/cores || true - sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true - mkdir objdir-clone || true - - - name: Build Python REPL and example apps - # NOTE: the data-mode-check + check-failure-die is not 100% perfect as different - # encoding sizes for data that keeps changing may alter over time (e.g. anything relating to time - # or resources such as packet counts or other similar counters) - # - # This may result in invalid errors, however for most purposes of our testing, we are unlikely to - # hit such cases so we remain very strict on testing here. - run: | - scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv' - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test-data-model-check-check-failure-die \ - --target linux-x64-lock-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-lit-icd-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-energy-management-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-microwave-oven-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-rvc-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-network-manager-ipv6only-no-ble-no-wifi-tsan-clang-test \ - --target linux-x64-fabric-admin-rpc-ipv6only-clang \ - --target linux-x64-fabric-bridge-rpc-ipv6only-no-ble-no-wifi-clang \ - --target linux-x64-light-data-model-no-unique-id-ipv6only-no-ble-no-wifi-clang \ - --target linux-x64-python-bindings \ - build \ - --copy-artifacts-to objdir-clone \ - " - - name: Generate an argument environment file - run: | - echo -n "" >/tmp/test_env.yaml - echo "ALL_CLUSTERS_APP: out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test-data-model-check-check-failure-die/chip-all-clusters-app" >> /tmp/test_env.yaml - echo "CHIP_LOCK_APP: out/linux-x64-lock-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-lock-app" >> /tmp/test_env.yaml - echo "ENERGY_MANAGEMENT_APP: out/linux-x64-energy-management-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-energy-management-app" >> /tmp/test_env.yaml - echo "LIT_ICD_APP: out/linux-x64-lit-icd-ipv6only-no-ble-no-wifi-tsan-clang-test/lit-icd-app" >> /tmp/test_env.yaml - echo "CHIP_MICROWAVE_OVEN_APP: out/linux-x64-microwave-oven-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-microwave-oven-app" >> /tmp/test_env.yaml - echo "CHIP_RVC_APP: out/linux-x64-rvc-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-rvc-app" >> /tmp/test_env.yaml - echo "NETWORK_MANAGEMENT_APP: out/linux-x64-network-manager-ipv6only-no-ble-no-wifi-tsan-clang-test/matter-network-manager-app" >> /tmp/test_env.yaml - echo "FABRIC_ADMIN_APP: out/linux-x64-fabric-admin-rpc-ipv6only-clang/fabric-admin" >> /tmp/test_env.yaml - echo "FABRIC_BRIDGE_APP: out/linux-x64-fabric-bridge-rpc-ipv6only-no-ble-no-wifi-clang/fabric-bridge-app" >> /tmp/test_env.yaml - echo "LIGHTING_APP_NO_UNIQUE_ID: out/linux-x64-light-data-model-no-unique-id-ipv6only-no-ble-no-wifi-clang/chip-lighting-app" >> /tmp/test_env.yaml - echo "TRACE_APP: out/trace_data/app-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml - echo "TRACE_TEST_JSON: out/trace_data/test-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml - echo "TRACE_TEST_PERFETTO: out/trace_data/test-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml - - - name: Run Tests - run: | - mkdir -p out/trace_data - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/controller/python/test/test_scripts/mobile-device-test.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/execute_python_tests.py --env-file /tmp/test_env.yaml --search-directory src/python_testing' - scripts/run_in_python_env.sh out/venv './scripts/tests/TestTimeSyncTrustedTimeSourceRunner.py --all-clusters out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test-data-model-check-check-failure-die/chip-all-clusters-app' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestIdChecks.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestSpecParsingDeviceType.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestConformanceSupport.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestConformanceTest.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestChoiceConformanceSupport.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestMatterTestingSupport.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/TestSpecParsingSupport.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/test_testing/test_TC_ICDM_2_1.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/test_testing/test_IDM_10_4.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/test_testing/test_TC_SC_7_1.py' - scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/test_testing/TestDecorators.py' - - - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-linux-python-repl - path: /tmp/cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Uploading objdir for debugging - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-objdir-linux-python-repl - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 - - repl_tests_darwin: - name: REPL Tests - Darwin - - strategy: - matrix: - build_variant: [no-ble-no-wifi-tsan-clang] - env: - BUILD_VARIANT: ${{matrix.build_variant}} - TSAN_OPTIONS: "halt_on_error=1" - - if: github.actor != 'restyled-io[bot]' && false - runs-on: macos-13 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Environment - # coreutils for stdbuf - run: brew install coreutils - - name: - Try to ensure the directories for core dumping and diagnostic - log collection exist and we can write them. - run: | - sudo chown ${USER} /cores || true - mkdir -p ~/Library/Logs/DiagnosticReports || true - mkdir objdir-clone || true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: darwin - bootstrap-log-name: bootstrap-logs-darwin-${{ matrix.build_variant }}${{ matrix.chip_tool }} - - - name: Build Python REPL and example apps - run: | - scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv' - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py \ - --target darwin-x64-all-clusters-${BUILD_VARIANT}-test \ - build \ - --copy-artifacts-to objdir-clone \ - " - - name: Run Tests - run: | - scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/darwin-x64-all-clusters-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factory-reset --quiet --app-args "--discriminator 3840 --interface-id -1" --script-args "-t 3600 --disable-test ClusterObjectTests.TestTimedRequestTimeout"' - - name: Uploading core files - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-core-darwin-python-repl - path: /cores/ - # Cores are big; don't hold on to them too long. - retention-days: 5 - - name: Uploading traces on failure - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: trace-data-python-repl - path: out/trace_data/ - retention-days: 5 - - name: Uploading diagnostic logs - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-log-darwin-python-repl - path: ~/Library/Logs/DiagnosticReports/ - - name: Uploading objdir for debugging - uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} - with: - name: crash-objdir-darwin-python-repl - path: objdir-clone/ - # objdirs are big; don't hold on to them too long. - retention-days: 5 diff --git a/.github/workflows/third-party-check.yaml b/.github/workflows/third-party-check.yaml deleted file mode 100644 index beda0af41b0622..00000000000000 --- a/.github/workflows/third-party-check.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) 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: Check for Unintentional Submodule Updates - -on: - pull_request: - branches-ignore: - - "dependabot/**" - paths: - - "third_party/**" - - ".gitmodules" - -jobs: - check-submodule-update-label: - name: Check For Submodule Update Label - runs-on: ubuntu-latest - steps: - - if: ${{ !contains(github.event.pull_request.labels.*.name, 'changing-submodules-on-purpose') }} - name: Fail - run: | - echo This pull request attempts to update submodules without the changing-submodules-on-purpose label. Please apply that label if the changes are intentional, or remove those changes. - exit 1 - - if: ${{ contains(github.event.pull_request.labels.*.name, 'changing-submodules-on-purpose') }} - name: Success - run: | - echo PR looks good. - exit 0 diff --git a/.github/workflows/todos.yaml b/.github/workflows/todos.yaml deleted file mode 100644 index cc2148da4e6d18..00000000000000 --- a/.github/workflows/todos.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: Create issues from To-Dos - -on: - workflow_dispatch: - inputs: - importAll: - default: "false" - required: false - type: boolean - description: Enable, if you want to import all TODOs. Runs on checked out branch! Only use if you're sure what you are doing. -# push: Will move this to a cadence -# branches: -# - master - -permissions: - issues: write - repository-projects: read - contents: read - -jobs: - todos: - name: Scan for To-Dos - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Run Issue Bot - uses: derjuulsn/todo-issue@main - with: - # autoAssign: false - reopenClosed: false - # label: "todo" - # disabled until this works: https://github.com/DerJuulsn/todo-issue/issues/9 - keywords: "todo,fixme,bug,TODO,FIXME,BUG" - excludePattern: "^(node_modules/|third_party/|zzz_generated/|docs/|.vscode/)" - env: - GITHUB_TOKEN: ${{ secrets.MATTER_PAT }} diff --git a/.github/workflows/unit_integration_test.yaml b/.github/workflows/unit_integration_test.yaml deleted file mode 100644 index b51dfaa8fc2fde..00000000000000 --- a/.github/workflows/unit_integration_test.yaml +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (c) 2020 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: Unit / Integration Tests - -on: - push: - branches: - - master - - 'v*-branch' - 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 - -jobs: - unit_tests: - name: Unit / Integration Tests - if: github.actor != 'restyled-io[bot]' - - strategy: - matrix: - type: [main, clang, mbedtls, rotating_device_id, icd] - env: - BUILD_TYPE: ${{ matrix.type }} - - runs-on: ubuntu-latest - - container: - image: ghcr.io/project-chip/chip-build:81 - volumes: - - "/:/runner-root-volume" - - "/tmp/log_output:/tmp/test_logs" - options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - bootstrap-log-name: bootstrap-logs-unittest-${{ matrix.type }} - - name: Artifact suffix - id: outsuffix - uses: haya14busa/action-cond@v1 - if: ${{ !env.ACT }} - with: - cond: ${{ github.event.pull_request.number == '' }} - if_true: "${{ github.sha }}" - if_false: "pull-${{ github.event.pull_request.number }}" - - name: Setup Build - # TODO: If rotating_device_id is ever removed/combined, we have to cover boringssl otherwise - run: | - case $BUILD_TYPE in - "main") GN_ARGS='';; - "clang") GN_ARGS='is_clang=true';; - "mbedtls") GN_ARGS='chip_crypto="mbedtls"';; - "rotating_device_id") GN_ARGS='chip_crypto="boringssl" chip_enable_rotating_device_id=true';; - "icd") GN_ARGS='chip_enable_icd_server=true chip_enable_icd_lit=true';; - *) ;; - esac - - scripts/build/gn_gen.sh --args="$GN_ARGS chip_data_model_check_die_on_failure=true" - - name: Run Build - run: scripts/run_in_build_env.sh "ninja -C out/$BUILD_TYPE" - - name: Run Tests - run: scripts/tests/gn_tests.sh - # TODO Log Upload https://github.com/project-chip/connectedhomeip/issues/2227 - # TODO https://github.com/project-chip/connectedhomeip/issues/1512 - # - name: Run Code Coverage - # if: ${{ contains('main', env.BUILD_TYPE) }} - # run: scripts/tools/codecoverage.sh - # - name: Upload Code Coverage - # if: ${{ contains('main', env.BUILD_TYPE) }} - # run: bash <(curl -s https://codecov.io/bash) diff --git a/.github/workflows/zap_regeneration.yaml b/.github/workflows/zap_regeneration.yaml deleted file mode 100644 index 483b9486d1bdc6..00000000000000 --- a/.github/workflows/zap_regeneration.yaml +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2020 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: ZAP - Regenerate - -on: - 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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - zap_regeneration: - name: ZAP Regeneration - - runs-on: ubuntu-20.04 - container: - image: ghcr.io/project-chip/chip-build:81 - defaults: - run: - shell: sh - if: github.actor != 'restyled-io[bot]' - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: true - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - - - name: Generate all - run: ./scripts/run_in_build_env.sh scripts/tools/zap_regen_all.py - - uses: EndBug/add-and-commit@v9 - with: - default_author: github_actions - message: Regenerating ZAP diff --git a/.github/workflows/zap_templates.yaml b/.github/workflows/zap_templates.yaml deleted file mode 100644 index 717f8ca95628fa..00000000000000 --- a/.github/workflows/zap_templates.yaml +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (c) 2020 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: ZAP - -on: - push: - branches: - - master - - 'v*-branch' - 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: - zap_templates: - name: ZAP templates generation - - runs-on: ubuntu-20.04 - container: - image: ghcr.io/project-chip/chip-build:81 - defaults: - run: - shell: sh - if: github.actor != 'restyled-io[bot]' - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: linux - # Java formatting requires a newer java to run ktfmt - # TODO: this should be eventually inside Docker files - - name: Update java - run: | - apt-get update - DEBIAN_FRONTEND=noninteractive apt-get install -fy --fix-missing openjdk-17-jre - # Clean out java generated files: since java codegen will generate one file per - # structure/cluster, if clusters and structures are ever changed (for in progress work) - # this may leave obsolete files. Ensure we always check for clean regen. - - name: Ensure clean java - run: rm -rf src/controller/java/generated/ - - name: Generate all - run: ./scripts/run_in_build_env.sh scripts/tools/zap_regen_all.py - - name: Generate script-maintained items (ERROR_CODES.md) - run: ./scripts/run_in_build_env.sh "scripts/error_table.py > docs/ERROR_CODES.md" - - name: Ensure git works in current working directory - run: git config --global --add safe.directory `pwd` - - name: Check for uncommited changes - run: | - git add . - # Show the full diff - git diff-index -p HEAD -- - # Also show just the files that are different, to make it easy - # to tell at a glance what might be going on. And throw in - # --exit-code to make this job fail if there is a difference. - git diff-index --exit-code HEAD --