name: CI

on:
  # Run on pushes, pull-requests, and also once per day
  # (in case deps change under us, etc.)
  push:
  pull_request:
  schedule:
      # Note: '*' is a special character in YAML so we have to quote the str.
      - cron: '0 12 * * *'
        
jobs:

  # We run most of our testing on linux but it should apply to mac too;
  # we can always add an explicit mac job if it seems worthwhile.
  ci_unix:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v1
    - name: Set up Python
      uses: actions/setup-python@v1
      with:
        python-version: 3.7
    - name: Install dependencies
      run: tools/snippets install_pip_reqs
    - name: Run checks and tests
      run: make -j2 check test

  # Most of our toolset doesn't work on raw windows (outside of WSL).
  # However, it's nice to at least run unit tests there since some behavior
  # (filesystem, etc) can vary significantly.
  ci_windows:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v1
    - name: Set up Python
      uses: actions/setup-python@v1
      with:
        python-version: 3.7
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pytest typing_extensions
    - name: Run tests
      run: python tools/snippets pytest -v tests
        
