# Copyright 2023 Google LLC
# SPDX-License-Identifier: Apache-2.0

name: Scripts tests

on:
  push:
    branches:
      - main
      - v*-branch
    paths:
      - 'scripts/build/**'
      - '.github/workflows/scripts_tests.yml'
  pull_request:
    branches:
      - main
      - v*-branch
    paths:
      - 'scripts/build/**'
      - '.github/workflows/scripts_tests.yml'

permissions:
  contents: read

jobs:
  scripts-tests:
    name: Scripts tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        python-version: ['3.10', '3.11', '3.12', '3.13']
        os: [ubuntu-24.04]
    steps:
      - name: checkout
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          ref: ${{ github.event.pull_request.head.sha }}
          fetch-depth: 0

      - name: Rebase
        continue-on-error: true
        env:
          BASE_REF: ${{ github.base_ref }}
          PR_HEAD: ${{ github.event.pull_request.head.sha }}
        run: |
          git config --global user.email "actions@zephyrproject.org"
          git config --global user.name "Github Actions"
          rm -fr ".git/rebase-apply"
          rm -fr ".git/rebase-merge"
          git rebase origin/${BASE_REF}
          git clean -f -d
          git log --graph --oneline HEAD...${PR_HEAD}

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
        with:
          python-version: ${{ matrix.python-version }}
          cache: pip
          cache-dependency-path: scripts/requirements-actions.txt

      - name: Install Python packages
        run: |
          pip install -r scripts/requirements-actions.txt --require-hashes

      - name: Run pytest
        env:
          ZEPHYR_BASE: ./
        run: |
          echo "Run script tests"
          pytest ./scripts/build
