1# 2# Copyright (c) 2020, The OpenThread Authors. 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# 2. Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in the 11# documentation and/or other materials provided with the distribution. 12# 3. Neither the name of the copyright holder nor the 13# names of its contributors may be used to endorse or promote products 14# derived from this software without specific prior written permission. 15# 16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26# POSSIBILITY OF SUCH DAMAGE. 27# 28 29name: OTCI 30 31on: 32 push: 33 branches-ignore: 34 - 'dependabot/**' 35 pull_request: 36 branches: 37 - 'main' 38 39concurrency: 40 group: ${{ github.workflow }}-${{ github.event.pull_request.number || (github.repository == 'openthread/openthread' && github.run_id) || github.ref }} 41 cancel-in-progress: true 42 43permissions: # added using https://github.com/step-security/secure-workflows 44 contents: read 45 46jobs: 47 48 cli-sim: 49 name: cli-sim VIRTUAL_TIME=${{ matrix.virtual_time }} 50 runs-on: ubuntu-20.04 51 strategy: 52 fail-fast: false 53 matrix: 54 virtual_time: [0, 1] 55 env: 56 VIRTUAL_TIME: ${{ matrix.virtual_time }} 57 REAL_DEVICE: 0 58 steps: 59 - name: Harden Runner 60 uses: step-security/harden-runner@6b3083af2869dc3314a0257a42f4af696cc79ba3 # v2.3.1 61 with: 62 egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs 63 64 - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 65 - name: Bootstrap 66 run: | 67 sudo rm /etc/apt/sources.list.d/* && sudo apt-get update 68 sudo apt-get --no-install-recommends install -y g++-multilib ninja-build python3-setuptools python3-wheel 69 python3 -m pip install -r tests/scripts/thread-cert/requirements.txt 70 python3 -m pip install pytype adb-shell 71 - name: Style check 72 run: | 73 PYTHONPATH=./tests/scripts/thread-cert pytype tools/otci 74 - name: Build 75 run: | 76 ./script/cmake-build simulation -DOT_THREAD_VERSION=1.3 -DOT_DUA=ON -DOT_MLR=ON -DOT_BACKBONE_ROUTER=ON \ 77 -DOT_CSL_RECEIVER=ON -DOT_SIMULATION_VIRTUAL_TIME=${VIRTUAL_TIME} 78 - name: Install OTCI Python Library 79 run: | 80 (cd tools/otci && python3 -m pip install .) 81 - name: Run 82 run: | 83 export PYTHONPATH=./tests/scripts/thread-cert/ 84 export OT_CLI=./build/simulation/examples/apps/cli/ot-cli-ftd 85 python3 tools/otci/tests/test_otci.py 86