# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

on: pull_request
jobs:
  pre-commit:
    runs-on: ubuntu-18.04
    steps:
      - name: Checkout
        uses: actions/checkout@v1
      - name: Setup python 3.6
        uses: actions/setup-python@v1
        with:
          python-version: 3.6
  test-unit-python:
    runs-on: ubuntu-18.04
    strategy:
      matrix:
        python-version: ["3.6.x", "3.7.x"]
    steps:
      - name: Checkout
        uses: actions/checkout@v1
      - name: Setup python ${{ matrix.python-version }}
        uses: actions/setup-python@v1
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install dependencies
        run: pip3 install -r requirements.txt && pip3 install .[all] && pip3 install codecov
      - name: Run python unit tests
        run: make test
  test-unit-frontend:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x]
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install and Lint
        working-directory: ./amundsen_application/static
        run: |
          npm install
          npm install codecov -g
          npm run lint
      - name: Check and build
        working-directory: ./amundsen_application/static
        run: |
          npm run betterer
          npm run build --if-present
      - name: Test
        working-directory: ./amundsen_application/static
        run: npm run test
        env:
          CI: true
