From 8e0e65da63c25a0923fb0f55dc026a5dde446483 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Tue, 5 May 2026 07:48:32 -0700 Subject: [PATCH] [github-actions] migrate simulation tests to Nexus (#13041) This commit removes several simulation test jobs from the GitHub Actions workflows, specifically 'simulation-1.1.yml' and 'simulation-1.4.yml'. The following jobs were removed: - packet-verification - cli-ftd - cli-mtd - cli-time-sync - thread-1-4 These tests have been migrated to the Nexus test framework, which allows for more efficient and scalable network simulations by running multiple OpenThread nodes within a single process. --- .github/workflows/simulation-1.1.yml | 214 --------------------------- .github/workflows/simulation-1.4.yml | 69 --------- 2 files changed, 283 deletions(-) diff --git a/.github/workflows/simulation-1.1.yml b/.github/workflows/simulation-1.1.yml index bfdbb5153..8ff3c2b2c 100644 --- a/.github/workflows/simulation-1.1.yml +++ b/.github/workflows/simulation-1.1.yml @@ -45,216 +45,6 @@ permissions: jobs: - packet-verification: - runs-on: ubuntu-24.04 - env: - PACKET_VERIFICATION: 1 - REFERENCE_DEVICE: 1 - THREAD_VERSION: 1.1 - VIRTUAL_TIME: 1 - TEST_TIMEOUT: 300 - OT_VT_USE_UNIX_SOCKET: 1 - MULTIPLY: 3 - steps: - - name: Harden Runner - uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 - with: - egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs - - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: recursive - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.12' - cache: pip - - name: Bootstrap - run: | - sudo apt-get update - sudo apt-get --no-install-recommends install -y ninja-build 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: | - ./script/test cert_suite ./tests/scripts/thread-cert/Cert_*.py ./tests/scripts/thread-cert/test_*.py - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - if: ${{ failure() }} - with: - name: packet-verification-pcaps - path: | - *.pcap - *.json - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: cov-packet-verification - path: tmp/coverage.info - retention-days: 1 - - cli-ftd: - runs-on: ubuntu-24.04 - env: - CFLAGS: -m32 - CXXFLAGS: -m32 - LDFLAGS: -m32 - COVERAGE: 1 - REFERENCE_DEVICE: 1 - THREAD_VERSION: 1.1 - VIRTUAL_TIME: 1 - TEST_TIMEOUT: 300 - OT_VT_USE_UNIX_SOCKET: 1 - steps: - - name: Harden Runner - uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 - with: - egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs - - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: recursive - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.12' - cache: pip - - name: Bootstrap - run: | - sudo apt-get update - sudo apt-get --no-install-recommends install -y lcov ninja-build g++-multilib - python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - - name: Build - run: | - ./script/test build - - name: Run - run: | - ./script/test cert_suite ./tests/scripts/thread-cert/Cert_*.py ./tests/scripts/thread-cert/test_*.py - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - if: ${{ failure() }} - with: - name: cli-ftd-thread-cert - path: ot_testing - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: cov-cli-ftd - path: tmp/coverage.info - retention-days: 1 - - cli-mtd: - name: cli-mtd MESSAGE_USE_HEAP=${{ matrix.message_use_heap }} - runs-on: ubuntu-24.04 - strategy: - fail-fast: false - matrix: - message_use_heap: [0, 1] - env: - CFLAGS: -m32 - CXXFLAGS: -m32 - LDFLAGS: -m32 - COVERAGE: 1 - REFERENCE_DEVICE: 1 - THREAD_VERSION: 1.1 - USE_MTD: 1 - VIRTUAL_TIME: 1 - TEST_TIMEOUT: 300 - OT_VT_USE_UNIX_SOCKET: 1 - MESSAGE_USE_HEAP: ${{ matrix.message_use_heap }} - steps: - - name: Harden Runner - uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 - with: - egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs - - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: recursive - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.12' - cache: pip - - name: Bootstrap - run: | - sudo apt-get update - sudo apt-get --no-install-recommends install -y lcov ninja-build g++-multilib - python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - - name: Build - run: | - ./script/test build - - name: Run - run: | - ./script/test cert_suite ./tests/scripts/thread-cert/Cert_*.py ./tests/scripts/thread-cert/test_*.py - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - if: ${{ failure() }} - with: - name: cli-mtd-thread-cert - path: ot_testing - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: cov-cli-mtd-${{ matrix.message_use_heap }} - path: tmp/coverage.info - retention-days: 1 - - cli-time-sync: - runs-on: ubuntu-24.04 - env: - CFLAGS: -m32 - CXXFLAGS: -m32 - LDFLAGS: -m32 - COVERAGE: 1 - REFERENCE_DEVICE: 1 - THREAD_VERSION: 1.1 - VIRTUAL_TIME: 1 - TEST_TIMEOUT: 300 - OT_VT_USE_UNIX_SOCKET: 1 - steps: - - name: Harden Runner - uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 - with: - egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs - - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: recursive - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.12' - cache: pip - - name: Bootstrap - run: | - sudo apt-get update - sudo apt-get --no-install-recommends install -y g++-multilib lcov ninja-build - python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - - name: Build - run: | - OT_OPTIONS="-DOT_TIME_SYNC=ON" ./script/test build - - name: Run - run: | - ./script/test cert_suite ./tests/scripts/thread-cert/Cert_*.py ./tests/scripts/thread-cert/test_*.py - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - if: ${{ failure() }} - with: - name: cli-time-sync-thread-cert - path: ot_testing - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: cov-cli-time-sync - path: tmp/coverage.info - retention-days: 1 - expects: runs-on: ubuntu-24.04 env: @@ -389,10 +179,6 @@ jobs: upload-coverage: needs: - - packet-verification - - cli-ftd - - cli-mtd - - cli-time-sync - expects - ot-commissioner runs-on: ubuntu-22.04 diff --git a/.github/workflows/simulation-1.4.yml b/.github/workflows/simulation-1.4.yml index afac16995..9fba92ea6 100644 --- a/.github/workflows/simulation-1.4.yml +++ b/.github/workflows/simulation-1.4.yml @@ -45,74 +45,6 @@ permissions: # added using https://github.com/step-security/secure-workflows jobs: - thread-1-4: - name: thread-1-4 - runs-on: ubuntu-22.04 - env: - COVERAGE: 1 - THREAD_VERSION: 1.4 - VIRTUAL_TIME: 1 - TEST_TIMEOUT: 300 - OT_VT_USE_UNIX_SOCKET: 1 - INTER_OP: 1 - INTER_OP_BBR: 1 - strategy: - fail-fast: false - steps: - - name: Harden Runner - uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2 - with: - egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs - - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - with: - submodules: recursive - - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.12' - cache: pip - - name: Bootstrap - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get --no-install-recommends install -y ninja-build llvm lcov - sudo apt-get --no-install-recommends install -y g++-multilib libreadline-dev:i386 libncurses-dev:i386 - python3 -m pip install -r tests/scripts/thread-cert/requirements.txt - - name: Build - run: | - ./script/test build - - name: Run - run: | - ulimit -c unlimited - ./script/test prepare_coredump_upload - ./script/test unit - ./script/test cert_suite tests/scripts/thread-cert/v1_2_* - - name: Check Crash - if: ${{ failure() }} - run: | - CRASHED=$(./script/test check_crash | tail -1) - [[ $CRASHED -eq "1" ]] && echo "Crashed!" || echo "Not crashed." - echo "CRASHED=$CRASHED" >> $GITHUB_ENV - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - if: ${{ failure() }} - with: - name: thread-1-4-pcaps - path: "*.pcap" - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - if: ${{ failure() && env.CRASHED == '1' }} - with: - name: core-packet-verification-thread-1-4 - path: | - ./ot-core-dump/* - - name: Generate Coverage - run: | - ./script/test generate_coverage gcc - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: cov-thread-1-4 - path: tmp/coverage.info - retention-days: 1 - channel-manager-csl: runs-on: ubuntu-24.04 env: @@ -214,7 +146,6 @@ jobs: upload-coverage: needs: - - thread-1-4 - expects runs-on: ubuntu-22.04 steps: