Stages
Un stage representa unha fase no proceso de CI/CD. Os jobs dentro do mesmo stage execútanse en paralelo (se hai runners dispoñibles), pero un stage non comeza ata que o anterior remate con éxito.
Exemplo típico de stages:
build: para compilar.test: para executar tests.deploy: para despregar o código.
Para definir estes stages débese usar a palabra clave stages no inicio do ficheiro .gitlab-ci.yml, especificando a orde das etapas:
stages:
- build
- test
- deploy
Como sería o funcionamento dun pipeline:
- GitLab executa primeiro todos os
jobsdostagebuild. - Se todos os
jobsda fasebuildrematan satisfactoriamente, execútanse osjobsda stagetest. - Se
jobsdetesttamén rematan satisfactoriamente, execútanse osjobsda stagedeploy.
Se algún job falla, o pipeline detense (agás que se utilice a opción allow_failure: true).
Se non defines os stages, GitLab ordenará os jobs segundo a orde en que aparecen, pero é boa práctica sempre definilas.