# Copyright © 2012-2023 jrnl contributors
# License: https://www.gnu.org/licenses/gpl-3.0.html

name: Testing

on:
  push:
    branches: [ develop, release ]
    paths:
    - 'jrnl/**'
    - 'features/**'
    - 'tests/**'
    - 'poetry.lock'
    - 'pyproject.toml'
    - '.github/workflows/testing_prs.yaml'
    - 'tasks.py'
  pull_request:
    branches: [ develop ]
    paths:
    - 'jrnl/**'
    - 'features/**'
    - 'tests/**'
    - 'poetry.lock'
    - 'pyproject.toml'
    - '.github/workflows/testing_prs.yaml'
    - 'tasks.py'

defaults:
  run:
    shell: bash # needed to prevent Windows from using PowerShell

jobs:
  test:
    if: >
      ! contains(github.event.head_commit.message, '[ci skip]')
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        python-version: [ '3.10', '3.11', '3.12' ]
        os: [ ubuntu-latest, macos-latest, windows-latest ]
    steps:
      - run: git config --global core.autocrlf false
      - uses: actions/checkout@v4
      - name: Run tests
        uses: ./.github/actions/run_tests
        with:
          cache-string: ${{ secrets.CACHE_STRING }}
