# This test job is separated out into its own workflow to be able to trigger separately
name: CI-devtest

on:
  push:
    branches:
    - main
    - 'v*'
    tags:
    - '*'
  pull_request:
  schedule:
    - cron: "0 3 * * 6"
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  devdeps:
    runs-on: ubuntu-latest
    name: linux (3.13 py313-test-devdeps-alldeps-cov)
    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8  # v5.0.0
      - name: Set up Python 3.13
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c  # v6.0.0
        with:
          python-version: "3.13"
      - name: Install tox
        run: python -m pip install --upgrade tox
      - name: Run tests against dev dependencies
        run: tox -e py313-test-devdeps-alldeps-cov

      - name: Upload coverage to codecov
        uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7  # v5.5.1
        with:
          file: ./coverage.xml
          verbose: true

  py314:
    runs-on: ubuntu-latest
    name: linux (3.14 py314-test)
    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8  # v5.0.0
      - name: Set up Python 3.14
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c  # v6.0.0
        with:
          python-version: "3.14-dev"
      - name: Install tox
        run: python -m pip install --upgrade tox
      - name: Run tests
        run: tox -e py314-test
