Skip to content

⬆️ Bump actions/download-artifact from 8.0.0 to 8.0.1 #763

⬆️ Bump actions/download-artifact from 8.0.0 to 8.0.1

⬆️ Bump actions/download-artifact from 8.0.0 to 8.0.1 #763

Workflow file for this run

name: Continuous Integration
on:
workflow_call:
pull_request:
push:
branches:
- master
permissions:
contents: read
jobs:
lint:
name: 🎨 Linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3'
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: Pre-commit checks
run: nox -s lint
tests:
name: ✅ Tests
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: Run tests
run: nox -s test-${{ matrix.python-version }}
- name: "Upload artifact"
uses: "actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f"
with:
name: coverage-data-${{ matrix.python-version }}
path: ".coverage.*"
include-hidden-files: true
if-no-files-found: error
detection_coverage:
needs:
- tests
name: 📈 Detection Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3'
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: Coverage WITH preemptive
run: nox -s coverage -- --coverage 97 --with-preemptive
- name: Coverage WITHOUT preemptive
run: nox -s coverage -- --coverage 96
- name: "Upload artifact"
uses: "actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f"
with:
name: coverage-data-using-internal-coverage
path: ".coverage.*"
include-hidden-files: true
if-no-files-found: error
integration_test:
needs:
- tests
name: 🔗 Integration Tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
downstream_project:
- niquests
- requests
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3'
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: Integration Tests with Requests
run: nox -s downstream_${{ matrix.downstream_project }}
chardet_bc:
name: ⏪ Chardet Backward-Compatibility Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3'
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: BC Coverage
run: nox -s backward_compatibility -- --coverage 80
mypyc_test:
name: ⚡ MypyC Tests
needs:
- tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
- "3.14t"
os: [ ubuntu-latest, macos-latest, windows-latest ]
env:
PYTHONIOENCODING: utf8 # only needed for Windows (console IO output encoding)
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: Run tests with mypyc enabled
run: nox -s test_mypyc-${{ matrix.python-version }}
- name: "Upload artifact"
uses: "actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f"
with:
name: coverage-data-mypyc-${{ matrix.os }}-${{ matrix.python-version }}
path: ".coverage.*"
include-hidden-files: true
if-no-files-found: error
coverage:
if: always()
runs-on: "ubuntu-latest"
needs:
- tests
- mypyc_test
- detection_coverage
steps:
- name: "Checkout repository"
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd"
- name: "Setup Python"
uses: "actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405"
with:
python-version: "3.x"
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: "Download artifact"
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
pattern: coverage-data*
merge-multiple: true
- name: "Combine & check coverage"
run: |
python -m coverage combine
python -m coverage html --skip-covered --skip-empty
python -m coverage report --ignore-errors --show-missing --fail-under=92
- name: "Upload report"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: coverage-report
path: htmlcov
performance:
name: ⚡ Performance Test
runs-on: ubuntu-latest
needs: coverage
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3'
- name: Install CI Requirements
run: |
python -m pip install -r ci-requirements.txt --require-hashes
- name: Performance Measurement
run: nox -s performance