Pipeline — весь прогон на событие; stage — логическая группа; job — единица выполнения на runner с образом, скриптом и артефактами — параллель обычно на уровне jobs.
Разбор
- Jobs в одной stage часто параллельны; между stages — порядок.
- Needs/dependencies позволяют DAG вместо жёсткой линейности.
- Один упавший required job валит pipeline (если не allow_failure).
- Retry и timeout настраивают на job.
Итог
Думайте job'ами как единицами изоляции и кэша; stages — организацией.