diff --git a/.github/workflows/bsim-tests.yaml b/.github/workflows/bsim-tests-bluetooth.yaml similarity index 88% rename from .github/workflows/bsim-tests.yaml rename to .github/workflows/bsim-tests-bluetooth.yaml index e04275dc617..51d61e5301c 100644 --- a/.github/workflows/bsim-tests.yaml +++ b/.github/workflows/bsim-tests-bluetooth.yaml @@ -1,14 +1,14 @@ -name: BabbleSim Tests +name: BabbleSim BT Tests on: pull_request: paths: - - ".github/workflows/bsim-test*.yaml" + - ".github/workflows/bsim-tests-bluetooth.yaml" + - ".github/workflows/bsim-tests-publish.yaml" - "west.yml" - "subsys/bluetooth/**" - - "tests/bsim/**" + - "tests/bsim/bluetooth/**" - "samples/bluetooth/**" - - "samples/net/sockets/echo_*/**" - "boards/posix/**" - "soc/posix/**" - "arch/posix/**" @@ -18,7 +18,7 @@ concurrency: cancel-in-progress: true jobs: - bsim-test: + bsim-test-bluetooth: if: github.repository_owner == 'zephyrproject-rtos' runs-on: zephyr-runner-linux-x64-4xlarge container: @@ -68,12 +68,12 @@ jobs: west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || ( rm -rf ../modules ../bootloader ../tools && west update --path-cache /github/cache/zephyrproject) west forall -c 'git reset --hard HEAD' - - name: Run Networking Tests with BSIM + - name: Run Bluetooth Tests with BSIM run: | export ZEPHYR_BASE=${PWD} - WORK_DIR=${ZEPHYR_BASE}/bsim_out tests/bsim/compile.sh + WORK_DIR=${ZEPHYR_BASE}/bsim_out tests/bsim/bluetooth/compile.sh RESULTS_FILE=${ZEPHYR_BASE}/${bsim_test_results_file} \ - SEARCH_PATH=tests/bsim/ tests/bsim/run_parallel.sh + SEARCH_PATH=tests/bsim/bluetooth/ tests/bsim/run_parallel.sh - name: Upload Test Results if: always() diff --git a/.github/workflows/bsim-tests-networking.yaml b/.github/workflows/bsim-tests-networking.yaml new file mode 100644 index 00000000000..6075f847cad --- /dev/null +++ b/.github/workflows/bsim-tests-networking.yaml @@ -0,0 +1,97 @@ +name: BabbleSim Networking Tests + +on: + pull_request: + paths: + - ".github/workflows/bsim-tests-networking.yaml" + - ".github/workflows/bsim-tests-publish.yaml" + - "west.yml" + - "tests/bsim/net/**" + - "samples/net/sockets/echo_*/**" + - "modules/openthread/**" + - "subsys/net/l2/openthread/**" + - "include/zephyr/net/openthread.h" + - "boards/posix/**" + - "soc/posix/**" + - "arch/posix/**" + - "drivers/ieee802154/**" + - "include/zephyr/net/ieee802154*" + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + bsim-test-networking: + if: github.repository_owner == 'zephyrproject-rtos' + runs-on: zephyr-runner-linux-x64-4xlarge + container: + image: ghcr.io/zephyrproject-rtos/ci:v0.25.1 + options: '--entrypoint /bin/bash' + volumes: + - /repo-cache/zephyrproject:/github/cache/zephyrproject + env: + ZEPHYR_TOOLCHAIN_VARIANT: zephyr + ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.16.0 + BSIM_OUT_PATH: /opt/bsim/ + BSIM_COMPONENTS_PATH: /opt/bsim/components + EDTT_PATH: ../tools/edtt + bsim_test_results_file: ./bsim_out/bsim_results.xml + steps: + - name: Apply container owner mismatch workaround + run: | + # FIXME: The owner UID of the GITHUB_WORKSPACE directory may not + # match the container user UID because of the way GitHub + # Actions runner is implemented. Remove this workaround when + # GitHub comes up with a fundamental fix for this problem. + git config --global --add safe.directory ${GITHUB_WORKSPACE} + + - name: Clone cached Zephyr repository + continue-on-error: true + run: | + git clone --shared /github/cache/zephyrproject/zephyr . + git remote set-url origin ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} + + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Environment Setup + env: + BASE_REF: ${{ github.base_ref }} + run: | + git config --global user.email "bot@zephyrproject.org" + git config --global user.name "Zephyr Bot" + rm -fr ".git/rebase-apply" + git rebase origin/${BASE_REF} + git log --pretty=oneline | head -n 10 + west init -l . || true + west config manifest.group-filter -- +ci + west config --global update.narrow true + west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || ( rm -rf ../modules ../bootloader ../tools && west update --path-cache /github/cache/zephyrproject) + west forall -c 'git reset --hard HEAD' + + - name: Run Networking Tests with BSIM + run: | + export ZEPHYR_BASE=${PWD} + WORK_DIR=${ZEPHYR_BASE}/bsim_out tests/bsim/net/compile.sh + RESULTS_FILE=${ZEPHYR_BASE}/${bsim_test_results_file} \ + SEARCH_PATH=tests/bsim/net/ tests/bsim/run_parallel.sh + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: bsim-test-results + path: | + ./bsim_out/bsim_results.xml + ${{ github.event_path }} + + - name: Upload Event Details + if: always() + uses: actions/upload-artifact@v3 + with: + name: event + path: | + ${{ github.event_path }} diff --git a/.github/workflows/bsim-tests-publish.yaml b/.github/workflows/bsim-tests-publish.yaml index 05cea30c5b7..0752ebd3518 100644 --- a/.github/workflows/bsim-tests-publish.yaml +++ b/.github/workflows/bsim-tests-publish.yaml @@ -2,7 +2,7 @@ name: Publish BabbleSim Tests Results on: workflow_run: - workflows: ["BabbleSim Tests"] + workflows: ["BabbleSim BT Tests", "BabbleSim Networking Tests"] types: - completed jobs: @@ -15,7 +15,6 @@ jobs: - name: Download artifacts uses: dawidd6/action-download-artifact@v2 with: - workflow: bsim-tests.yaml run_id: ${{ github.event.workflow_run.id }} - name: Publish BabbleSim Test Results diff --git a/.gitignore b/.gitignore index fe76418bf60..735440b4cac 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,7 @@ sanity-out* twister-out* bsim_out bsim_bt_out +tests/RunResults.xml scripts/grub doc/reference/kconfig/*.rst doc/doc.warnings diff --git a/tests/bsim/compile.sh b/tests/bsim/bluetooth/compile.sh similarity index 93% rename from tests/bsim/compile.sh rename to tests/bsim/bluetooth/compile.sh index 788d69670f4..beec89f937c 100755 --- a/tests/bsim/compile.sh +++ b/tests/bsim/bluetooth/compile.sh @@ -22,6 +22,5 @@ run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/audio/compile.sh run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/host/compile.sh run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/ll/compile.sh run_in_background ${ZEPHYR_BASE}/tests/bsim/bluetooth/mesh/compile.sh -run_in_background ${ZEPHYR_BASE}/tests/bsim/net/compile.sh wait_for_background_jobs