1. Why define stages such as build, test, and deploy instead of one big job?
Stages model the flow. Jobs inside a stage can fan out in parallel, then the next stage runs only when the current one is green. This cuts time and keeps the pipeline easy to read.
stages: [build, test, deploy]
jobs:
build: {}
test_unit: {}
test_int: {}