name: Build with Clang/LLVM

on: pull_request_target

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

jobs:
  clang-build:
    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'
    strategy:
      fail-fast: false
      matrix:
        platform: ["native_sim"]
    env:
      CCACHE_DIR: /node-cache/ccache-zephyr
      CCACHE_REMOTE_STORAGE: "redis://cache-*.keydb-cache.svc.cluster.local|shards=1,2,3"
      CCACHE_REMOTE_ONLY: "true"
      LLVM_TOOLCHAIN_PATH: /usr/lib/llvm-16
      COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
      BASE_REF: ${{ github.base_ref }}
    outputs:
      report_needed: ${{ steps.twister.outputs.report_needed }}
    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:
          ref: ${{ github.event.pull_request.head.sha }}
          fetch-depth: 0
          persist-credentials: false

      - name: Environment Setup
        run: |
          echo "$HOME/.local/bin" >> $GITHUB_PATH
          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 --global update.narrow true
          west config manifest.group-filter -- +ci,+optional
          # In some cases modules are left in a state where they can't be
          # updated (i.e. when we cancel a job and the builder is killed),
          # So first retry to update, if that does not work, remove all modules
          # and start over. (Workaround until we implement more robust module
          # west caching).
          west update --path-cache /repo-cache/zephyrproject 2>&1 1> west.log || west update --path-cache /repo-cache/zephyrproject 2>&1 1> west2.log || ( rm -rf ../modules ../bootloader ../tools && west update --path-cache /repo-cache/zephyrproject)

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

      - name: Check Environment
        run: |
          cmake --version
          ${LLVM_TOOLCHAIN_PATH}/bin/clang --version
          gcc --version
          ls -la

      - name: Set up ccache
        run: |
          mkdir -p ${CCACHE_DIR}
          ccache -M 10G
          ccache -p
          ccache -z -s -vv

      - name: Update BabbleSim to manifest revision
        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 Tests with Twister
        id: twister
        run: |
          export ZEPHYR_BASE=${PWD}
          export ZEPHYR_TOOLCHAIN_VARIANT=llvm

          # check if we need to run a full twister or not based on files changed
          python3 ./scripts/ci/test_plan.py --platform ${{ matrix.platform }} -c origin/${BASE_REF}..

          # We can limit scope to just what has changed
          if [ -s testplan.json ]; then
            echo "report_needed=1" >> $GITHUB_OUTPUT
            # Full twister but with options based on changes
            ./scripts/twister --force-color --inline-logs -M -N -v --load-tests testplan.json --retry-failed 2
          else
            # if nothing is run, skip reporting step
            echo "report_needed=0" >> $GITHUB_OUTPUT
          fi

      - name: Print ccache stats
        if: always()
        run: |
          ccache -s -vv

      - name: Upload Unit Test Results
        if: always() && steps.twister.outputs.report_needed != 0
        uses: actions/upload-artifact@v4
        with:
          name: Unit Test Results (Subset ${{ matrix.platform }})
          path: twister-out/twister.xml

  clang-build-results:
    name: "Publish Unit Tests Results"
    needs: clang-build
    runs-on: ubuntu-22.04
    if: (success() || failure() ) && needs.clang-build.outputs.report_needed != 0
    steps:
      - name: Download Artifacts
        uses: actions/download-artifact@v4
        with:
          path: artifacts
      - name: Merge Test Results
        run: |
          pip3 install junitparser junit2html
          junitparser merge artifacts/*/twister.xml junit.xml
          junit2html junit.xml junit-clang.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-clang.html

      - name: Publish Unit Test Results
        uses: EnricoMi/publish-unit-test-result-action@v2
        if: always()
        with:
          check_name: Unit Test Results
          files: "**/twister.xml"
          comment_mode: off
