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/**"
      - "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.4
      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.1
      BSIM_OUT_PATH: /opt/bsim/
      BSIM_COMPONENTS_PATH: /opt/bsim/components
      EDTT_PATH: ../tools/edtt
      bsim_bluetooth_test_results_file: ./bsim_bluetooth/bsim_results.xml
      bsim_networking_test_results_file: ./bsim_net/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/**
            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 {sha} )
          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_bluetooth tests/bsim/bluetooth/compile.sh
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_bluetooth_test_results_file} \
          SEARCH_PATH=tests/bsim/bluetooth/ 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 tests/bsim/net/compile.sh
          RESULTS_FILE=${ZEPHYR_BASE}/${bsim_networking_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_bluetooth/bsim_results.xml
            ./bsim_net/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 }}
