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

name: Devicetree script tests

on:
  push:
    branches:
    - v2.7-branch
    paths:
    - 'scripts/dts/**'
    - '.github/workflows/devicetree_checks.yml'
  pull_request:
    branches:
    - v2.7-branch
    paths:
    - 'scripts/dts/**'
    - '.github/workflows/devicetree_checks.yml'

jobs:
  devicetree-checks:
    name: Devicetree script tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        python-version: [3.6, 3.7, 3.8]
        os: [ubuntu-20.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@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: cache-pip-mac
      if: startsWith(runner.os, 'macOS')
      uses: actions/cache@v3
      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@v3
      with:
        path: ~\AppData\Local\pip\Cache
        key: ${{ runner.os }}-pip-${{ matrix.python-version }}
        restore-keys: |
          ${{ runner.os }}-pip-${{ matrix.python-version }}
    - name: install python dependencies
      run: |
        pip3 install wheel
        pip3 install pytest pyyaml tox
    - name: run tox
      working-directory: scripts/dts/python-devicetree
      run: |
        tox
