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

name: Zephyr West Command Tests

on:
  push:
    paths:
    - 'scripts/west-commands.yml'
    - 'scripts/west_commands/**'
    - '.github/workflows/west_cmds.yml'
  pull_request:
    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.6, 3.7, 3.8]
        os: [ubuntu-latest, macos-latest, windows-latest]
        exclude:
          - os: macos-latest
            python-version: 3.6
          - os: windows-latest
            python-version: 3.6
    steps:
    - name: checkout
      uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    - name: cache-pip-linux
      if: startsWith(runner.os, 'Linux')
      uses: actions/cache@v1
      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@v1
      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@v1
      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 progress mypy intelhex psutil
    - 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
