name: BabbleSim Tests

on:
  pull_request:
    paths:
      - ".github/workflows/bsim-tests.yaml"
      - ".github/workflows/bsim-tests-publish.yaml"
      - "west.yml"
      - "subsys/bluetooth/**"
      - "tests/bsim/**"
      - "samples/bluetooth/**"
      - "boards/posix/**"
      - "soc/posix/**"
      - "arch/posix/**"
      - "include/zephyr/arch/posix/**"
      - "scripts/native_simulator/**"
      - "samples/net/sockets/echo_*/**"
      - "modules/openthread/**"
      - "subsys/net/l2/openthread/**"
      - "include/zephyr/net/openthread.h"
      - "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:
    if: github.repository_owner == 'zephyrproject-rtos'
    runs-on: zephyr-runner-linux-x64-4xlarge
    container:
      image: ghcr.io/zephyrproject-rtos/ci:v0.26.6
      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.4
      BSIM_OUT_PATH: /opt/bsim/
      BSIM_COMPONENTS_PATH: /opt/bsim/components
      EDTT_PATH: ../tools/edtt
      bsim_bt_52_test_results_file: ./bsim_bt/52_bsim_results.xml
      bsim_bt_53_test_results_file: ./bsim_bt/53_bsim_results.xml
      bsim_bt_53split_test_results_file: ./bsim_bt/53_bsim_split_results.xml
      bsim_net_52_test_results_file: ./bsim_net/52_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: Check common triggering files
        uses: tj-actions/changed-files@v35
        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/*

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

      - name: Check if Networking files changed
        uses: tj-actions/changed-files@v35
        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: Update BabbleSim to manifest revision
        if: >
          steps.check-bluetooth-files.outputs.any_changed == 'true'
          || steps.check-networking-files.outputs.any_changed == 'true'
          || steps.check-common-files.outputs.any_changed == '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 config --global advice.detachedHead false
          git checkout ${BSIM_VERSION}
          west update
          make everything -s -j 8

      - name: Run Bluetooth Tests with BSIM
        if: steps.check-bluetooth-files.outputs.any_changed == 'true' || steps.check-common-files.outputs.any_changed == 'true'
        run: |
          export ZEPHYR_BASE=${PWD}
          export WORK_DIR=${ZEPHYR_BASE}/bsim_bt
          # Build and run the BT tests for nrf52_bsim:
          nice tests/bsim/bluetooth/compile.sh
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bt_52_test_results_file} \
          TESTS_FILE=tests/bsim/bluetooth/tests.nrf52bsim.txt tests/bsim/run_parallel.sh
          # Build and run the BT controller tests also for the nrf5340bsim_nrf5340_cpunet
          BOARD=nrf5340bsim_nrf5340_cpunet \
          nice tests/bsim/bluetooth/compile.nrf5340bsim_nrf5340_cpunet.sh
          BOARD=nrf5340bsim_nrf5340_cpunet \
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bt_53_test_results_file} \
          TESTS_FILE=tests/bsim/bluetooth/tests.nrf5340bsim_nrf5340_cpunet.txt \
          tests/bsim/run_parallel.sh
          # Build and run the nrf5340 split stack tests set
          BOARD=nrf5340bsim_nrf5340_cpuapp \
          nice tests/bsim/bluetooth/compile.nrf5340bsim_nrf5340_cpuapp.sh
          BOARD=nrf5340bsim_nrf5340_cpuapp \
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bt_53split_test_results_file} \
          TESTS_FILE=tests/bsim/bluetooth/tests.nrf5340bsim_nrf5340_cpuapp.txt \
          tests/bsim/run_parallel.sh

      - name: Run Networking Tests with BSIM
        if: steps.check-networking-files.outputs.any_changed == 'true' || steps.check-common-files.outputs.any_changed == 'true'
        run: |
          export ZEPHYR_BASE=${PWD}
          WORK_DIR=${ZEPHYR_BASE}/bsim_net nice tests/bsim/net/compile.sh
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_net_52_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_bt/52_bsim_results.xml
            ./bsim_bt/53_bsim_results.xml
            ./bsim_bt/53_bsim_split_results.xml
            ./bsim_net/52_bsim_results.xml
            ${{ github.event_path }}
          if-no-files-found: warn

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