From c356ca8ee195d1dd692537ab2f2c11484eb7bcf5 Mon Sep 17 00:00:00 2001 From: Simon Lin Date: Thu, 18 Mar 2021 01:20:46 +0800 Subject: [PATCH] [github-actions] move Border Router checks to `Border Router` workflow (#6294) --- .codecov.yml | 2 +- .github/workflows/otbr.yml | 187 +++++++++++++++++++++++++++ .github/workflows/simulation-1.2.yml | 119 ----------------- 3 files changed, 188 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/otbr.yml diff --git a/.codecov.yml b/.codecov.yml index 2b6b8838a..a1b70a778 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -13,4 +13,4 @@ ignore: comment: layout: "diff, flags, files" - after_n_builds: 4 + after_n_builds: 5 diff --git a/.github/workflows/otbr.yml b/.github/workflows/otbr.yml new file mode 100644 index 000000000..7dc6195eb --- /dev/null +++ b/.github/workflows/otbr.yml @@ -0,0 +1,187 @@ +# +# Copyright (c) 2021, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +name: Border Router + +on: [push, pull_request] + +jobs: + + cancel-previous-runs: + runs-on: ubuntu-20.04 + steps: + - uses: rokroskar/workflow-run-cleanup-action@master + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + if: "github.ref != 'refs/heads/main'" + + backbone-router: + runs-on: ubuntu-20.04 + env: + REFERENCE_DEVICE: 1 + VIRTUAL_TIME: 0 + PACKET_VERIFICATION: 1 + THREAD_VERSION: 1.2 + INTER_OP: 1 + COVERAGE: 1 + MULTIPLY: 1 + PYTHONUNBUFFERED: 1 + VERBOSE: 1 + # The Border Routing and DUA feature can coexist, but current wireshark + # packet verification can't handle it because of the order of context ID + # of OMR prefix and Domain prefix is not deterministic. + BORDER_ROUTING: 0 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Build OTBR Docker + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + run: | + ./script/test build_otbr_docker + - name: Bootstrap + run: | + sudo rm /etc/apt/sources.list.d/* && sudo apt-get update + sudo apt-get --no-install-recommends install -y python3-setuptools python3-wheel ninja-build socat lcov + python3 -m pip install -r tests/scripts/thread-cert/requirements.txt + - name: Build + run: | + ./script/test build + - name: Get Thread-Wireshark + run: | + ./script/test get_thread_wireshark + - name: Run + run: | + export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS -e COVERAGE" + echo "CI_ENV=${CI_ENV}" + sudo -E ./script/test cert_suite ./tests/scripts/thread-cert/backbone/*.py || (sudo chmod a+r *.log *.json *.pcap && false) + - uses: actions/upload-artifact@v2 + with: + name: cov-thread-1-2-backbone-docker + path: /tmp/coverage/ + - uses: actions/upload-artifact@v2 + if: ${{ failure() }} + with: + name: thread-1-2-backbone-results + path: | + *.pcap + *.json + *.log + - name: Generate Coverage + run: | + ./script/test generate_coverage gcc + - uses: actions/upload-artifact@v2 + with: + name: cov-thread-1-2-backbone + path: tmp/coverage.info + + thread-border-router: + runs-on: ubuntu-20.04 + env: + REFERENCE_DEVICE: 1 + VIRTUAL_TIME: 0 + PACKET_VERIFICATION: 1 + THREAD_VERSION: 1.2 + INTER_OP: 1 + COVERAGE: 1 + MULTIPLY: 1 + PYTHONUNBUFFERED: 1 + VERBOSE: 1 + BORDER_ROUTING: 1 + steps: + - uses: actions/checkout@v2 + - name: Build OTBR Docker + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + run: | + ./script/test build_otbr_docker + - name: Bootstrap + run: | + sudo rm /etc/apt/sources.list.d/* && sudo apt-get update + sudo apt-get --no-install-recommends install -y python3-setuptools python3-wheel ninja-build socat lcov + python3 -m pip install -r tests/scripts/thread-cert/requirements.txt + - name: Build + run: | + ./script/test build + - name: Get Thread-Wireshark + run: | + ./script/test get_thread_wireshark + - name: Run + run: | + export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS -e COVERAGE" + echo "CI_ENV=${CI_ENV}" + sudo -E ./script/test cert_suite ./tests/scripts/thread-cert/border_router/*.py || (sudo chmod a+r *.log *.json *.pcap && false) + - uses: actions/upload-artifact@v2 + with: + name: cov-thread-border-router-docker + path: /tmp/coverage/ + - uses: actions/upload-artifact@v2 + if: ${{ failure() }} + with: + name: thread-border-router-results + path: | + *.pcap + *.json + *.log + - name: Generate Coverage + run: | + ./script/test generate_coverage gcc + - uses: actions/upload-artifact@v2 + with: + name: cov-thread-border-router + path: tmp/coverage.info + + upload-coverage: + needs: + - backbone-router + - thread-border-router + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Bootstrap + run: | + sudo apt-get --no-install-recommends install -y lcov + - uses: actions/download-artifact@v2 + with: + path: coverage/ + - name: Upload Coverage + run: | + script/test upload_codecov + + delete-coverage-artifacts: + needs: upload-coverage + if: always() + runs-on: ubuntu-20.04 + steps: + - uses: geekyeggo/delete-artifact@1-glob-support + with: + name: cov-* + useGlob: true diff --git a/.github/workflows/simulation-1.2.yml b/.github/workflows/simulation-1.2.yml index ca381a996..3fdacde63 100644 --- a/.github/workflows/simulation-1.2.yml +++ b/.github/workflows/simulation-1.2.yml @@ -242,123 +242,6 @@ jobs: name: cov-expects path: tmp/coverage.info - thread-1-2-backbone: - runs-on: ubuntu-18.04 - env: - REFERENCE_DEVICE: 1 - VIRTUAL_TIME: 0 - PACKET_VERIFICATION: 1 - THREAD_VERSION: 1.2 - INTER_OP: 1 - COVERAGE: 1 - MULTIPLY: 1 - PYTHONUNBUFFERED: 1 - VERBOSE: 1 - # The Border Routing and DUA feature can coexist, but current wireshark - # packet verification can't handle it because of the order of context ID - # of OMR prefix and Domain prefix is not deterministic. - BORDER_ROUTING: 0 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - name: Build OTBR Docker - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - run: | - ./script/test build_otbr_docker - - name: Bootstrap - run: | - sudo rm /etc/apt/sources.list.d/* && sudo apt-get update - sudo apt-get --no-install-recommends install -y python3-setuptools python3-wheel ninja-build socat lcov - python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - - name: Build - run: | - ./script/test build - - name: Get Thread-Wireshark - run: | - ./script/test get_thread_wireshark - - name: Run - run: | - export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS -e COVERAGE" - echo "CI_ENV=${CI_ENV}" - sudo -E ./script/test cert_suite ./tests/scripts/thread-cert/backbone/*.py || (sudo chmod a+r *.log *.json *.pcap && false) - - uses: actions/upload-artifact@v2 - with: - name: cov-thread-1-2-backbone-docker - path: /tmp/coverage/ - - uses: actions/upload-artifact@v2 - if: ${{ failure() }} - with: - name: thread-1-2-backbone-results - path: | - *.pcap - *.json - *.log - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@v2 - with: - name: cov-thread-1-2-backbone - path: tmp/coverage.info - - thread-border-router: - runs-on: ubuntu-20.04 - env: - REFERENCE_DEVICE: 1 - VIRTUAL_TIME: 0 - PACKET_VERIFICATION: 1 - THREAD_VERSION: 1.2 - INTER_OP: 1 - COVERAGE: 1 - MULTIPLY: 1 - PYTHONUNBUFFERED: 1 - VERBOSE: 1 - BORDER_ROUTING: 1 - steps: - - uses: actions/checkout@v2 - - name: Build OTBR Docker - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - run: | - ./script/test build_otbr_docker - - name: Bootstrap - run: | - sudo rm /etc/apt/sources.list.d/* && sudo apt-get update - sudo apt-get --no-install-recommends install -y python3-setuptools python3-wheel ninja-build socat lcov - python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - - name: Build - run: | - ./script/test build - - name: Get Thread-Wireshark - run: | - ./script/test get_thread_wireshark - - name: Run - run: | - export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS -e COVERAGE" - echo "CI_ENV=${CI_ENV}" - sudo -E ./script/test cert_suite ./tests/scripts/thread-cert/border_router/*.py || (sudo chmod a+r *.log *.json *.pcap && false) - - uses: actions/upload-artifact@v2 - with: - name: cov-thread-border-router-docker - path: /tmp/coverage/ - - uses: actions/upload-artifact@v2 - if: ${{ failure() }} - with: - name: thread-border-router-results - path: | - *.pcap - *.json - *.log - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@v2 - with: - name: cov-thread-border-router - path: tmp/coverage.info - thread-1-2-posix: runs-on: ubuntu-20.04 env: @@ -423,8 +306,6 @@ jobs: - packet-verification-low-power - packet-verification-1-1-on-1-2 - expects - - thread-1-2-backbone - - thread-border-router - thread-1-2-posix runs-on: ubuntu-20.04 steps: