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.5
      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.3
      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_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}
          WORK_DIR=${ZEPHYR_BASE}/bsim_bt nice tests/bsim/bluetooth/compile.sh
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bt_52_test_results_file} \
          SEARCH_PATH=tests/bsim/bluetooth/ tests/bsim/run_parallel.sh
          # Run the BT controller tests also for the nrf5340
          BOARD=nrf5340bsim_nrf5340_cpunet \
          WORK_DIR=${ZEPHYR_BASE}/bsim_bt nice tests/bsim/bluetooth/ll/compile.sh
          BOARD=nrf5340bsim_nrf5340_cpunet \
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bt_53_test_results_file} \
          SEARCH_PATH=tests/bsim/bluetooth/ll/ 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_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 }}
