GitHub Actions: параллельный запуск тестов, шардирование, кеширование Docker-образов. Из 10 минут в 2 минуты
Параллельный запуск сокращает время CI с 10 минут до 2-3 минут.
Цель: Настроить production-ready CI/CD с параллелизмом.
# .github/workflows/test.yml
name: Tests
on:
push:
branches: [main, develop]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install pytest pytest-xdist
- name: Run tests in parallel
run: |
pytest -n auto -v# .github/workflows/test.yml
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
shard: [1, 2, 3, 4] # 4 параллельных job
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run test shard ${{ matrix.shard }}
run: |
pytest --splits 4 --group ${{ matrix.shard }} -v- name: Cache pip packages
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: pip install -r requirements.txtВопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.
Далее: CI/CD: Автоматическая детекция Flaky Tests