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.
  • Ограничивайте параллелизм очередью и бюджетом.