name: BabbleSim Tests

on:
  pull_request:
    paths:
      - ".github/workflows/bsim-tests.yaml"
      - ".github/workflows/bsim-tests-publish.yaml"
      - "west.yml"
      - "subsys/bluetooth/**"
      - "tests/bsim/**"
      - "boards/nordic/nrf5*/*dt*"
      - "dts/*/nordic/**"
      - "tests/bluetooth/common/testlib/**"
      - "samples/bluetooth/**"
      - "boards/posix/**"
      - "soc/posix/**"
      - "arch/posix/**"
      - "include/zephyr/arch/posix/**"
      - "scripts/native_simulator/**"
      - "samples/net/sockets/echo_*/**"
      - "modules/mbedtls/**"
      - "modules/openthread/**"
      - "subsys/net/l2/openthread/**"
      - "include/zephyr/net/openthread.h"
      - "drivers/ieee802154/**"
      - "include/zephyr/net/ieee802154*"
      - "drivers/serial/*nrfx*"
      - "tests/drivers/uart/**"

concurrency:
  group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref }}
  cancel-in-progress: true

jobs:
  bsim-test:
    if: github.repository_owner == 'zephyrproject-rtos'
    runs-on:
      group: zephyr-runner-v2-linux-x64-4xlarge
    container:
      image: ghcr.io/zephyrproject-rtos/ci-repo-cache:v0.27.4.20241026
      options: '--entrypoint /bin/bash'
    env:
      ZEPHYR_TOOLCHAIN_VARIANT: zephyr
      BSIM_OUT_PATH: /opt/bsim/
      BSIM_COMPONENTS_PATH: /opt/bsim/components
      EDTT_PATH: ../tools/edtt
    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: Print cloud service information
        run: |
          echo "ZEPHYR_RUNNER_CLOUD_PROVIDER = ${ZEPHYR_RUNNER_CLOUD_PROVIDER}"
          echo "ZEPHYR_RUNNER_CLOUD_NODE = ${ZEPHYR_RUNNER_CLOUD_NODE}"
          echo "ZEPHYR_RUNNER_CLOUD_POD = ${ZEPHYR_RUNNER_CLOUD_POD}"

      - name: Clone cached Zephyr repository
        continue-on-error: true
        run: |
          git clone --shared /repo-cache/zephyrproject/zephyr .
          git remote set-url origin ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}

      - name: Checkout
        uses: actions/checkout@v4
        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 clean -f -d
          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 /repo-cache/zephyrproject 2>&1 1> west.update.log || west update --path-cache /repo-cache/zephyrproject 2>&1 1> west.update.log || ( rm -rf ../modules ../bootloader ../tools && west update --path-cache /repo-cache/zephyrproject)
          west forall -c 'git reset --hard HEAD'

          echo "ZEPHYR_SDK_INSTALL_DIR=/opt/toolchains/zephyr-sdk-$( cat SDK_VERSION )" >> $GITHUB_ENV

      - name: Check common triggering files
        uses: tj-actions/changed-files@v45
        id: check-common-files
        with:
          files: |
            .github/workflows/bsim-tests.yaml
            .github/workflows/bsim-tests-publish.yaml
            west.yml
            boards/posix/
            soc/posix/
            arch/posix/
            include/zephyr/arch/posix/
            scripts/native_simulator/
            tests/bsim/*
            boards/nordic/nrf5*/*dt*
            dts/*/nordic/
            modules/mbedtls/**

      - name: Check if Bluethooth files changed
        uses: tj-actions/changed-files@v45
        id: check-bluetooth-files
        with:
          files: |
            tests/bsim/bluetooth/
            samples/bluetooth/
            subsys/bluetooth/

      - name: Check if Networking files changed
        uses: tj-actions/changed-files@v45
        id: check-networking-files
        with:
          files: |
            tests/bsim/net/
            samples/net/sockets/echo_*/
            modules/openthread/
            subsys/net/l2/openthread/
            include/zephyr/net/openthread.h
            drivers/ieee802154/
            include/zephyr/net/ieee802154*

      - name: Check if UART files changed
        uses: tj-actions/changed-files@v45
        id: check-uart-files
        with:
          files: |
            tests/bsim/drivers/uart/
            drivers/serial/*nrfx*
            tests/drivers/uart/

      - name: Update BabbleSim to manifest revision
        if: >
          steps.check-bluetooth-files.outputs.any_modified == 'true'
          || steps.check-networking-files.outputs.any_modified == 'true'
          || steps.check-uart-files.outputs.any_modified == 'true'
          || steps.check-common-files.outputs.any_modified == 'true'
        run: |
          export BSIM_VERSION=$( west list bsim -f {revision} )
          echo "Manifest points to bsim sha $BSIM_VERSION"
          cd /opt/bsim_west/bsim
          git fetch -n origin ${BSIM_VERSION}
          git -c advice.detachedHead=false checkout ${BSIM_VERSION}
          west update
          make everything -s -j 8

      - name: Run Bluetooth Tests with BSIM
        if: steps.check-bluetooth-files.outputs.any_modified == 'true' || steps.check-common-files.outputs.any_modified == 'true'
        run: |
          tests/bsim/ci.bt.sh

      - name: Run Networking Tests with BSIM
        if: steps.check-networking-files.outputs.any_modified == 'true' || steps.check-common-files.outputs.any_modified == 'true'
        run: |
          tests/bsim/ci.net.sh

      - name: Run UART Tests with BSIM
        if: steps.check-uart-files.outputs.any_modified == 'true' || steps.check-common-files.outputs.any_modified == 'true'
        run: |
          tests/bsim/ci.uart.sh

      - name: Merge Test Results
        run: |
          pip3 install junitparser junit2html
          junitparser merge --glob "./bsim_*/*bsim_results.*.xml" "./twister-out/twister.xml" junit.xml
          junit2html junit.xml junit.html

      - name: Upload Unit Test Results in HTML
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: HTML Unit Test Results
          if-no-files-found: ignore
          path: |
            junit.html

      - name: Publish Unit Test Results
        uses: EnricoMi/publish-unit-test-result-action@v2
        with:
          check_name: Bsim Test Results
          files: "junit.xml"
          comment_mode: off

      - name: Upload Event Details
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: event
          path: |
            ${{ github.event_path }}
