intermediate
Параллельные jobs
Разделяйте независимые проверки между workers, сокращая feedback time без скрытых shared-state или порядковых зависимостей.
Параллельные jobs сокращают время feedback за счёт независимой работы. Хорошие пайплайны разделяют lint, typecheck, tests и build, не скрывая порядковые зависимости.
jobs:
lint:
runs-on: ubuntu-latest
steps: [...]
typecheck:
runs-on: ubuntu-latest
steps: [...]
test:
needs: [] # независим, если не нужны артефакты
runs-on: ubuntu-latest
Объявляйте `needs`, когда jobs потребляют артефакты или идут после install. Test sharding делит suite между workers; общие БД или порты дают flakes при наивном параллелизме.
На интервью: граф зависимостей, передача артефактов, sharding тестов, лимиты очереди, shared-state, вскрываемый параллелизмом.
Типовые ошибки: параллельные jobs мутируют одно окружение; fan-out выше concurrency организации; нет `needs` — гонка за артефактами.
Компромисс — wall-clock скорость против стоимости инфраструктуры и риска flakes.
Чеклист:
- Независимую работу — в отдельные jobs.
- Явные зависимости между jobs.
- Без shared mutable state между workers.
- Ограничивайте параллелизм очередью и бюджетом.