name: Test

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
  build:
    runs-on: ${{ matrix.platform }}
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11"]
        platform: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
          fetch-depth: 0
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install packages
        run: |
          pip install '.[qa]'
          pip install '.[test]'
      - name: lint
        run: |
            black . --check --diff --color
      - name: Run Tests
        env:
          DEV_FAMILY_DOWNLOAD: ${{ secrets.DEV_FAMILY_DOWNLOAD }}
          DEV_META_URL: ${{ secrets.DEV_META_URL }}
          DEV_URL: ${{ secrets.DEV_URL }}
          DEV_VERSIONS_URL: ${{ secrets.DEV_VERSIONS_URL }}
          PRODUCTION_META_URL: ${{ secrets.PRODUCTION_META_URL }}
          PRODUCTION_URL: ${{ secrets.PRODUCTION_URL}}
          PRODUCTION_VERSIONS_URL: ${{ secrets.PRODUCTION_VERSIONS_URL }}
          SANDBOX_FAMILY_DOWNLOAD: ${{ secrets.SANDBOX_FAMILY_DOWNLOAD }}
          SANDBOX_META_URL: ${{ secrets.SANDBOX_META_URL }}
          SANDBOX_URL: ${{ secrets.SANDBOX_URL }}
          SANDBOX_VERSIONS_URL: ${{ secrets.SANDBOX_VERSIONS_URL }}
          TRAFFIC_JAM_ID: ${{ secrets.TRAFFIC_JAM_ID }}
          STATUS_FIELD_ID: ${{ secrets.STATUS_FIELD_ID }}
          LIST_FIELD_ID: ${{ secrets.LIST_FIELD_ID }}
          PR_GF_ID: ${{ secrets.PR_GF_ID }}
          IN_DEV_ID: ${{ secrets.IN_DEV_ID }}
          IN_SANDBOX_ID: ${{ secrets.IN_SANDBOX_ID }}
          LIVE_ID: ${{ secrets.LIVE_ID }}
          TO_SANDBOX_ID: ${{ secrets.TO_SANDBOX_ID }}
          TO_PRODUCTION_ID: ${{ secrets.TO_PRODUCTION_ID }}
          BLOCKED_ID: ${{ secrets.BLOCKED_ID }}
        run: |
          pytest tests