name: CI

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - "**"

env:
  FORCE_COLOR: 2
  NODE: 14.x
  PYTHON_VERSION: "3.7"

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Set up Python
        uses: actions/setup-python@v1
        with:
          python-version: "${{ env.PYTHON_VERSION }}"
          architecture: "x64"

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: "${{ env.NODE }}"

      - name: Cache Python dependencies
        uses: actions/cache@v2
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/requirements.txt') }}
          restore-keys: ${{ runner.os }}-pip-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/requirements.txt') }}

      # This is needed otherwise pip warns:
      # Using legacy 'setup.py install' for DEP, since package 'wheel' is not installed.
      - run: pip install --upgrade wheel

      - name: Install Python dependencies
        run: pip install -r requirements.txt

      - name: Install npm dependencies
        run: npm ci

      - name: Build docs
        run: mkdocs build

      - name: Test
        run: npm test
