From a7dd25e2c17e7796a4b5b0409c80997b41b1363a Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Wed, 8 Dec 2021 09:57:31 -0500 Subject: [PATCH] Fix arm cross compile error: default copy constructor deprecated if manual copy operator defined (#12726) * Add arm cross compile CI example * Fix build error and CI bloat report paths * Increase timeout for arm example build times --- .github/workflows/examples-linux-arm.yaml | 92 +++++++++++++++++++++++ src/app/ConcreteEventPath.h | 12 +-- 2 files changed, 94 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/examples-linux-arm.yaml diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml new file mode 100644 index 00000000000000..7cb4f26b83b755 --- /dev/null +++ b/.github/workflows/examples-linux-arm.yaml @@ -0,0 +1,92 @@ +# 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: + pull_request: + +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: + arm_crosscompile: + name: Linux ARM Cross compile + timeout-minutes: 70 + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: connectedhomeip/chip-build-crosscompile:0.5.33 + volumes: + - "/tmp/bloat_reports:/tmp/bloat_reports" + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true + + - name: Set up environment for size reports + if: ${{ !env.ACT }} + env: + GH_CONTEXT: ${{ toJson(github) }} + run: scripts/tools/memory/gh_sizes_environment.py "${GH_CONTEXT}" + + - name: Bootstrap + timeout-minutes: 10 + run: scripts/build/gn_bootstrap.sh + - name: Uploading bootstrap logs + uses: actions/upload-artifact@v2 + if: ${{ always() }} && ${{ !env.ACT }} + with: + name: bootstrap-logs + path: | + .environment/gn_out/.ninja_log + .environment/pigweed-venv/*.log + - name: Build Some samples + timeout-minutes: 20 + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target linux-arm64-all-clusters \ + --target linux-arm64-chip-tool-ipv6only \ + --target linux-arm64-minmdns \ + --target linux-arm64-thermostat-no-ble \ + build \ + " + - name: Bloat report - chip-tool + timeout-minutes: 5 + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + linux arm64 chip-tool-ipv6only \ + out/linux-arm64-chip-tool-ipv6only/chip-tool \ + /tmp/bloat_reports/ + - name: Bloat report - thermostat + timeout-minutes: 5 + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + linux arm64 thermostat-no-ble \ + out/linux-arm64-thermostat-no-ble/thermostat-app \ + /tmp/bloat_reports/ + - name: Uploading Size Reports + uses: actions/upload-artifact@v2 + if: ${{ !env.ACT }} + with: + name: Size,Linux-Examples,${{ env.GH_EVENT_PR }},${{ env.GH_EVENT_HASH }},${{ env.GH_EVENT_PARENT }} + path: | + /tmp/bloat_reports/ diff --git a/src/app/ConcreteEventPath.h b/src/app/ConcreteEventPath.h index 73e4a748b391fc..8dd9ce6aaa419d 100644 --- a/src/app/ConcreteEventPath.h +++ b/src/app/ConcreteEventPath.h @@ -34,16 +34,8 @@ struct ConcreteEventPath ConcreteEventPath() {} - ConcreteEventPath & operator=(const ConcreteEventPath & other) - { - if (&other == this) - return *this; - - mEndpointId = other.mEndpointId; - mClusterId = other.mClusterId; - mEventId = other.mEventId; - return *this; - } + ConcreteEventPath(const ConcreteEventPath & other) = default; + ConcreteEventPath & operator=(const ConcreteEventPath & other) = default; bool operator==(const ConcreteEventPath & other) const {