@ 261001.8 · fetching
current
name: Aiohttp
# If you don't understand the reason for a test failure, ping @Dreamsorcerer or open an issue in aio-libs/aiohttp.

on:
  push:
    branches:
      - 'main'
  pull_request:
    branches:
      - 'main'

permissions:
  contents: read

jobs:
  test:
    permissions:
      contents: read # to fetch code (actions/checkout)

    name: Aiohttp regression tests
    runs-on: ubuntu-latest
    steps:
    - name: Checkout aiohttp
      uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
      with:
        repository: aio-libs/aiohttp
    - name: Checkout llhttp
      uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
      with:
        path: vendor/llhttp
    - name: Restore node_modules cache
      uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
      with:
        path: vendor/llhttp/.npm
        key: ubuntu-latest-node-${{ hashFiles('vendor/llhttp/**/package-lock.json') }}
        restore-keys: ubuntu-latest-node-
    - name: Install llhttp dependencies
      run: npm ci --ignore-scripts
      working-directory: vendor/llhttp
    - name: Build llhttp
      run: make
      working-directory: vendor/llhttp
    - name: Setup Python
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
      with:
        python-version: 3.13
        cache: 'pip'
        cache-dependency-path: 'requirements/*.txt'
    - name: Provision the dev env
      run: >-
        PATH="${HOME}/.local/bin:${PATH}"
        make .develop
    - name: Run tests
      env:
        COLOR: yes
      run: >-
        PATH="${HOME}/.local/bin:${PATH}"
        pytest tests/test_http_parser.py tests/test_web_functional.py
    - name: Run dev_mode tests
      env:
        COLOR: yes
        PYTHONDEVMODE: 1
      run: >-
        PATH="${HOME}/.local/bin:${PATH}"
        pytest -m dev_mode tests/test_http_parser.py tests/test_web_functional.py