name: Tests

on:
  push:
    branches: [master, features]
  pull_request:
    branches: [master, features]
  schedule:
    # Run the tests every day at 6:00 AM.
    # This allows to run the tests against the relative dates
    - cron: "0 6 * * *"

jobs:
  e2e-tests:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
          - macos-latest
        python-version:
          - '3.7'
          - '3.8'
          - '3.9'
          - '3.10'

    name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v1

    - name: Set up Python
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}

    - name: Prepare tests
      run: |
        sudo gem install ronn
        pip install -U pip pipenv
        pipenv sync --dev
        make manpage

    - name: E2E tests
      run: |
        make tests

    - name: Install TeXLive (Ubuntu)
      if: ${{ matrix.os == 'ubuntu-latest' }}
      run: |
        sudo apt-get install -y texlive texlive-latex-extra

    - name: E2E tests
      env:
        TEXLIVE_INSTALLED: 1
      run: |
        make tests

    - name: manpage (section 1)
      run: |
        man -P $(which cat) manpage/kosmorro.1

    - name: manpage (section 7)
      run: |
        man -P $(which cat) manpage/kosmorro.7