# Copyright (C) 2021  The Symbiflow Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC

on: [push, pull_request]

jobs:

  Checks:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: recursive

    - uses: SymbiFlow/actions/checks@main
      with:
        exclude_directory: |
          - tests
          - .git
          - third_party


  Tests:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7]
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: recursive

    - name: Setup
      run: |
        sed -i -e's/- python/- python=${{ matrix.python-version }}/' environment.yml
        cat environment.yml
        make env

    - name: Test
      run: |
        TOXENV="$(echo py${{ matrix.python-version }} | sed -e's/\.//g')" make test-py

    - name: Upload test results
      uses: actions/upload-artifact@v2
      with:
        name: test-results-${{ matrix.python-version }}
        path: junit/python${{ matrix.python-version }}-test-results.xml
      if: always()
