name: large_nightly

# This CI only runs once per day, but tries
# many different configurations.

on:
  schedule:
    # Run at the 0th minute of the 10th hour (UTC).
    # This means the job will run at 5am EST.
    - cron: "0 10 * * *"
    # This will automatically run on master branch only.
  workflow_dispatch:

jobs:
  test:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 60
    # Windows jobs are flaky:
    continue-on-error: ${{ matrix.os == 'windows-latest' }}
    defaults:
      run:
        shell: bash
    strategy:
      fail-fast: false
      matrix:
        julia-version: ['1.6', '1.8', '1.9']
        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
        os: [ubuntu-latest, macos-latest, windows-latest]

    steps:
      - uses: actions/checkout@v4
      - name: "Set up Julia"
        uses: julia-actions/setup-julia@v1
        with:
          version: ${{ matrix.julia-version }}
      - name: "Set up Python"
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
      - name: "Install PySR"
        run: |
            python -m pip install --upgrade pip
            pip install -r requirements.txt
            python setup.py install
            python -m pysr install
      - name: "Run tests"
        run: |
            python -m pysr.test main
            python -m pysr.test cli
      - name: "Run new env test"
        run: python -m pysr.test env
        if: ${{ !(matrix.os == 'windows-latest' && matrix.python-version == '3.7') }}