# # Copyright (c) 2020, 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: Toranj 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'" toranj-ncp: name: toranj-ncp-${{ matrix.TORANJ_RADIO }} runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: TORANJ_RADIO: ['15.4', 'trel', 'multi'] env: COVERAGE: 1 TORANJ_RADIO : ${{ matrix.TORANJ_RADIO }} steps: - uses: actions/checkout@v2 with: submodules: true - name: Bootstrap env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: | sudo rm /etc/apt/sources.list.d/* && sudo apt-get update sudo apt-get --no-install-recommends install -y dbus libdbus-1-dev sudo apt-get --no-install-recommends install -y autoconf-archive sudo apt-get --no-install-recommends install -y bsdtar sudo apt-get --no-install-recommends install -y libtool sudo apt-get --no-install-recommends install -y libglib2.0-dev sudo apt-get --no-install-recommends install -y libboost-dev libboost-signals-dev sudo apt-get --no-install-recommends install -y lcov script/git-tool clone --depth=1 --branch=master https://github.com/openthread/wpantund.git cd wpantund ./bootstrap.sh ./configure sudo make -j2 sudo make install - name: Build & Run run: | top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh - name: Generate Coverage if: "matrix.TORANJ_RADIO != 'multi'" run: | ./script/test generate_coverage gcc - uses: actions/upload-artifact@v2 if: "matrix.TORANJ_RADIO != 'multi'" with: name: cov-toranj-ncp-${{ matrix.TORANJ_RADIO }} path: tmp/coverage.info toranj-cli: name: toranj-cli-${{ matrix.TORANJ_RADIO }} runs-on: ubuntu-18.04 strategy: matrix: TORANJ_RADIO: ['15.4'] env: COVERAGE: 1 TORANJ_RADIO : ${{ matrix.TORANJ_RADIO }} TORANJ_CLI: 1 steps: - uses: actions/checkout@v2 with: submodules: true - name: Bootstrap env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: | sudo rm /etc/apt/sources.list.d/* && sudo apt-get update sudo apt-get --no-install-recommends install -y lcov python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - name: Build & Run run: | top_builddir=$(pwd)/build/toranj ./tests/toranj/start.sh - name: Generate Coverage if: "matrix.TORANJ_RADIO != 'multi'" run: | ./script/test generate_coverage gcc - uses: actions/upload-artifact@v2 if: "matrix.TORANJ_RADIO != 'multi'" with: name: cov-toranj-cli-${{ matrix.TORANJ_RADIO }} path: tmp/coverage.info upload-coverage: needs: - toranj-ncp - toranj-cli runs-on: ubuntu-18.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: Combine Coverage run: | script/test combine_coverage - name: Upload Coverage uses: codecov/codecov-action@v2 with: files: final.info fail_ci_if_error: true delete-coverage-artifacts: needs: upload-coverage runs-on: ubuntu-20.04 steps: - uses: geekyeggo/delete-artifact@1-glob-support with: name: cov-* useGlob: true