# Copyright (c) 2020 Linaro Limited.
# SPDX-License-Identifier: Apache-2.0

name: Zephyr West Command Tests

on:
  push:
    branches:
    - main
    - v*-branch
    - collab-*
    paths:
    - 'scripts/west-commands.yml'
    - 'scripts/west_commands/**'
    - '.github/workflows/west_cmds.yml'
  pull_request:
    branches:
    - main
    - v*-branch
    - collab-*
    paths:
    - 'scripts/west-commands.yml'
    - 'scripts/west_commands/**'
    - '.github/workflows/west_cmds.yml'

jobs:
  west-commnads:
    name: West Command Tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        python-version: [3.8, 3.9, '3.10', '3.11', '3.12']
        os: [ubuntu-22.04, macos-11, windows-2022]
        exclude:
        - os: macos-11
          python-version: 3.6
        - os: windows-2022
          python-version: 3.6
    steps:
    - name: checkout
      uses: actions/checkout@v4
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
    - name: cache-pip-linux
      if: startsWith(runner.os, 'Linux')
      uses: actions/cache@v4
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ matrix.python-version }}
        restore-keys: |
          ${{ runner.os }}-pip-${{ matrix.python-version }}
    - name: cache-pip-mac
      if: startsWith(runner.os, 'macOS')
      uses: actions/cache@v4
      with:
        path: ~/Library/Caches/pip
        # Trailing '-' was just to get a different cache name
        key: ${{ runner.os }}-pip-${{ matrix.python-version }}-
        restore-keys: |
          ${{ runner.os }}-pip-${{ matrix.python-version }}-
    - name: cache-pip-win
      if: startsWith(runner.os, 'Windows')
      uses: actions/cache@v4
      with:
        path: ~\AppData\Local\pip\Cache
        key: ${{ runner.os }}-pip-${{ matrix.python-version }}
        restore-keys: |
          ${{ runner.os }}-pip-${{ matrix.python-version }}
    - name: install pytest
      run: |
        pip3 install wheel
        pip3 install pytest west pyelftools canopen natsort progress mypy intelhex psutil ply pyserial
    - name: run pytest-win
      if: runner.os == 'Windows'
      run: |
        python ./scripts/west_commands/run_tests.py
    - name: run pytest-mac-linux
      if: runner.os != 'Windows'
      run: |
        ./scripts/west_commands/run_tests.py
