name: build
on: [push, pull_request, workflow_dispatch]
jobs:
  test:
    name: ${{ matrix.name }}
    runs-on: ${{ matrix.os }}
    timeout-minutes: 30
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: 'check'
            python: '3.11'
            toxpython: 'python3.11'
            tox_env: 'check'
            os: 'ubuntu-latest'
          - name: 'docs'
            python: '3.11'
            toxpython: 'python3.11'
            tox_env: 'docs'
            os: 'ubuntu-latest'
          - name: 'py38-normal-normal-cover (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py38-normal-normal-cover (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-normal-normal-cover'
            os: 'macos-latest'
          - name: 'py38-normal-normal-nocov (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py38-normal-normal-nocov (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'py38-normal-gevent-cover (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py38-normal-gevent-cover (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'py38-normal-gevent-nocov (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py38-normal-gevent-nocov (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'py38-normal-eventlet-cover (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py38-normal-eventlet-cover (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'py38-normal-eventlet-nocov (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py38-normal-eventlet-nocov (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py38-signalfd-normal-cover (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py38-signalfd-normal-cover (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'py38-signalfd-normal-nocov (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py38-signalfd-normal-nocov (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'py38-signalfd-gevent-cover (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py38-signalfd-gevent-cover (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'py38-signalfd-gevent-nocov (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py38-signalfd-gevent-nocov (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'py38-signalfd-eventlet-cover (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py38-signalfd-eventlet-cover (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'py38-signalfd-eventlet-nocov (ubuntu)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'x64'
            tox_env: 'py38-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py38-signalfd-eventlet-nocov (macos)'
            python: '3.8'
            toxpython: 'python3.8'
            python_arch: 'arm64'
            tox_env: 'py38-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py39-normal-normal-cover (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py39-normal-normal-cover (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-normal-normal-cover'
            os: 'macos-latest'
          - name: 'py39-normal-normal-nocov (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py39-normal-normal-nocov (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'py39-normal-gevent-cover (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py39-normal-gevent-cover (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'py39-normal-gevent-nocov (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py39-normal-gevent-nocov (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'py39-normal-eventlet-cover (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py39-normal-eventlet-cover (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'py39-normal-eventlet-nocov (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py39-normal-eventlet-nocov (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py39-signalfd-normal-cover (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py39-signalfd-normal-cover (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'py39-signalfd-normal-nocov (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py39-signalfd-normal-nocov (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'py39-signalfd-gevent-cover (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py39-signalfd-gevent-cover (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'py39-signalfd-gevent-nocov (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py39-signalfd-gevent-nocov (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'py39-signalfd-eventlet-cover (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py39-signalfd-eventlet-cover (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'py39-signalfd-eventlet-nocov (ubuntu)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'x64'
            tox_env: 'py39-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py39-signalfd-eventlet-nocov (macos)'
            python: '3.9'
            toxpython: 'python3.9'
            python_arch: 'arm64'
            tox_env: 'py39-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py310-normal-normal-cover (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py310-normal-normal-cover (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-normal-normal-cover'
            os: 'macos-latest'
          - name: 'py310-normal-normal-nocov (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py310-normal-normal-nocov (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'py310-normal-gevent-cover (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py310-normal-gevent-cover (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'py310-normal-gevent-nocov (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py310-normal-gevent-nocov (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'py310-normal-eventlet-cover (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py310-normal-eventlet-cover (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'py310-normal-eventlet-nocov (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py310-normal-eventlet-nocov (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py310-signalfd-normal-cover (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py310-signalfd-normal-cover (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'py310-signalfd-normal-nocov (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py310-signalfd-normal-nocov (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'py310-signalfd-gevent-cover (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py310-signalfd-gevent-cover (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'py310-signalfd-gevent-nocov (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py310-signalfd-gevent-nocov (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'py310-signalfd-eventlet-cover (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py310-signalfd-eventlet-cover (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'py310-signalfd-eventlet-nocov (ubuntu)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'x64'
            tox_env: 'py310-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py310-signalfd-eventlet-nocov (macos)'
            python: '3.10'
            toxpython: 'python3.10'
            python_arch: 'arm64'
            tox_env: 'py310-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py311-normal-normal-cover (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py311-normal-normal-cover (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-normal-normal-cover'
            os: 'macos-latest'
          - name: 'py311-normal-normal-nocov (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py311-normal-normal-nocov (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'py311-normal-gevent-cover (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py311-normal-gevent-cover (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'py311-normal-gevent-nocov (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py311-normal-gevent-nocov (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'py311-normal-eventlet-cover (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py311-normal-eventlet-cover (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'py311-normal-eventlet-nocov (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py311-normal-eventlet-nocov (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py311-signalfd-normal-cover (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py311-signalfd-normal-cover (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'py311-signalfd-normal-nocov (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py311-signalfd-normal-nocov (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'py311-signalfd-gevent-cover (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py311-signalfd-gevent-cover (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'py311-signalfd-gevent-nocov (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py311-signalfd-gevent-nocov (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'py311-signalfd-eventlet-cover (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py311-signalfd-eventlet-cover (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'py311-signalfd-eventlet-nocov (ubuntu)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'x64'
            tox_env: 'py311-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py311-signalfd-eventlet-nocov (macos)'
            python: '3.11'
            toxpython: 'python3.11'
            python_arch: 'arm64'
            tox_env: 'py311-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py312-normal-normal-cover (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py312-normal-normal-cover (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-normal-normal-cover'
            os: 'macos-latest'
          - name: 'py312-normal-normal-nocov (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py312-normal-normal-nocov (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'py312-normal-gevent-cover (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py312-normal-gevent-cover (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'py312-normal-gevent-nocov (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py312-normal-gevent-nocov (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'py312-normal-eventlet-cover (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py312-normal-eventlet-cover (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'py312-normal-eventlet-nocov (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py312-normal-eventlet-nocov (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'py312-signalfd-normal-cover (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'py312-signalfd-normal-cover (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'py312-signalfd-normal-nocov (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'py312-signalfd-normal-nocov (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'py312-signalfd-gevent-cover (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'py312-signalfd-gevent-cover (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'py312-signalfd-gevent-nocov (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'py312-signalfd-gevent-nocov (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'py312-signalfd-eventlet-cover (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'py312-signalfd-eventlet-cover (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'py312-signalfd-eventlet-nocov (ubuntu)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'x64'
            tox_env: 'py312-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'py312-signalfd-eventlet-nocov (macos)'
            python: '3.12'
            toxpython: 'python3.12'
            python_arch: 'arm64'
            tox_env: 'py312-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'pypy38-normal-normal-cover (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'pypy38-normal-normal-cover (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-normal-normal-cover'
            os: 'macos-latest'
          - name: 'pypy38-normal-normal-nocov (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy38-normal-normal-nocov (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'pypy38-normal-gevent-cover (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'pypy38-normal-gevent-cover (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'pypy38-normal-gevent-nocov (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy38-normal-gevent-nocov (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'pypy38-normal-eventlet-cover (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'pypy38-normal-eventlet-cover (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'pypy38-normal-eventlet-nocov (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy38-normal-eventlet-nocov (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'pypy38-signalfd-normal-cover (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'pypy38-signalfd-normal-cover (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'pypy38-signalfd-normal-nocov (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy38-signalfd-normal-nocov (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'pypy38-signalfd-gevent-cover (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'pypy38-signalfd-gevent-cover (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'pypy38-signalfd-gevent-nocov (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy38-signalfd-gevent-nocov (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'pypy38-signalfd-eventlet-cover (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'pypy38-signalfd-eventlet-cover (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'pypy38-signalfd-eventlet-nocov (ubuntu)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'x64'
            tox_env: 'pypy38-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy38-signalfd-eventlet-nocov (macos)'
            python: 'pypy-3.8'
            toxpython: 'pypy3.8'
            python_arch: 'arm64'
            tox_env: 'pypy38-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'pypy39-normal-normal-cover (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'pypy39-normal-normal-cover (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-normal-normal-cover'
            os: 'macos-latest'
          - name: 'pypy39-normal-normal-nocov (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy39-normal-normal-nocov (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'pypy39-normal-gevent-cover (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'pypy39-normal-gevent-cover (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'pypy39-normal-gevent-nocov (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy39-normal-gevent-nocov (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'pypy39-normal-eventlet-cover (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'pypy39-normal-eventlet-cover (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'pypy39-normal-eventlet-nocov (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy39-normal-eventlet-nocov (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'pypy39-signalfd-normal-cover (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'pypy39-signalfd-normal-cover (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'pypy39-signalfd-normal-nocov (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy39-signalfd-normal-nocov (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'pypy39-signalfd-gevent-cover (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'pypy39-signalfd-gevent-cover (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'pypy39-signalfd-gevent-nocov (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy39-signalfd-gevent-nocov (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'pypy39-signalfd-eventlet-cover (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'pypy39-signalfd-eventlet-cover (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'pypy39-signalfd-eventlet-nocov (ubuntu)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'x64'
            tox_env: 'pypy39-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy39-signalfd-eventlet-nocov (macos)'
            python: 'pypy-3.9'
            toxpython: 'pypy3.9'
            python_arch: 'arm64'
            tox_env: 'pypy39-signalfd-eventlet-nocov'
            os: 'macos-latest'
          - name: 'pypy310-normal-normal-cover (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-normal-normal-cover'
            os: 'ubuntu-latest'
          - name: 'pypy310-normal-normal-cover (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-normal-normal-cover'
            os: 'macos-latest'
          - name: 'pypy310-normal-normal-nocov (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-normal-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy310-normal-normal-nocov (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-normal-normal-nocov'
            os: 'macos-latest'
          - name: 'pypy310-normal-gevent-cover (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-normal-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'pypy310-normal-gevent-cover (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-normal-gevent-cover'
            os: 'macos-latest'
          - name: 'pypy310-normal-gevent-nocov (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-normal-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy310-normal-gevent-nocov (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-normal-gevent-nocov'
            os: 'macos-latest'
          - name: 'pypy310-normal-eventlet-cover (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-normal-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'pypy310-normal-eventlet-cover (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-normal-eventlet-cover'
            os: 'macos-latest'
          - name: 'pypy310-normal-eventlet-nocov (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-normal-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy310-normal-eventlet-nocov (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-normal-eventlet-nocov'
            os: 'macos-latest'
          - name: 'pypy310-signalfd-normal-cover (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-signalfd-normal-cover'
            os: 'ubuntu-latest'
          - name: 'pypy310-signalfd-normal-cover (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-signalfd-normal-cover'
            os: 'macos-latest'
          - name: 'pypy310-signalfd-normal-nocov (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-signalfd-normal-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy310-signalfd-normal-nocov (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-signalfd-normal-nocov'
            os: 'macos-latest'
          - name: 'pypy310-signalfd-gevent-cover (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-signalfd-gevent-cover'
            os: 'ubuntu-latest'
          - name: 'pypy310-signalfd-gevent-cover (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-signalfd-gevent-cover'
            os: 'macos-latest'
          - name: 'pypy310-signalfd-gevent-nocov (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-signalfd-gevent-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy310-signalfd-gevent-nocov (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-signalfd-gevent-nocov'
            os: 'macos-latest'
          - name: 'pypy310-signalfd-eventlet-cover (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-signalfd-eventlet-cover'
            os: 'ubuntu-latest'
          - name: 'pypy310-signalfd-eventlet-cover (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-signalfd-eventlet-cover'
            os: 'macos-latest'
          - name: 'pypy310-signalfd-eventlet-nocov (ubuntu)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'x64'
            tox_env: 'pypy310-signalfd-eventlet-nocov'
            os: 'ubuntu-latest'
          - name: 'pypy310-signalfd-eventlet-nocov (macos)'
            python: 'pypy-3.10'
            toxpython: 'pypy3.10'
            python_arch: 'arm64'
            tox_env: 'pypy310-signalfd-eventlet-nocov'
            os: 'macos-latest'
    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python }}
        architecture: ${{ matrix.python_arch }}

    - name: install dependencies
      run: |
        python -mpip install --progress-bar=off -r ci/requirements.txt
        virtualenv --version
        pip --version
        tox --version
        pip list --format=freeze

    - name: test
      env:
        TOXPYTHON: '${{ matrix.toxpython }}'
        MANHOLE_TEST_TIMEOUT: 60
      run: >
        tox -e ${{ matrix.tox_env }} -v
  finish:
    needs: test
    if: ${{ always() }}
    runs-on: ubuntu-latest
    steps:
    - uses: coverallsapp/github-action@v2
      with:
        parallel-finished: true
    - uses: codecov/codecov-action@v3
      with:
        CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
