# Copyright (c) 2020 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0

name: Twister TestSuite

on:
  push:
    branches:
    - main
    - v*-branch
    paths:
    - 'scripts/pylib/twister/**'
    - 'scripts/twister'
    - 'scripts/tests/twister/**'
    - '.github/workflows/twister_tests.yml'
  pull_request:
    branches:
    - main
    - v*-branch
    paths:
    - 'scripts/pylib/twister/**'
    - 'scripts/twister'
    - 'scripts/tests/twister/**'
    - '.github/workflows/twister_tests.yml'

jobs:
  twister-tests:
    name: Twister Unit Tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        python-version: [3.8, 3.9, '3.10']
        os: [ubuntu-20.04]
    steps:
    - name: checkout
      uses: actions/checkout@v3
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python-version }}
    - name: cache-pip-linux
      if: startsWith(runner.os, 'Linux')
      uses: actions/cache@v3
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ matrix.python-version }}
        restore-keys: |
          ${{ runner.os }}-pip-${{ matrix.python-version }}
    - name: install-packages
      run: |
        pip3 install -r scripts/requirements-base.txt -r scripts/requirements-build-test.txt
    - name: Run pytest
      env:
        ZEPHYR_BASE: ./
        ZEPHYR_TOOLCHAIN_VARIANT: zephyr
      run: |
        west init -l . || true
        echo "Run twister tests"
        PYTHONPATH=./scripts/tests pytest ./scripts/tests/twister
