Variables de contorno
As variables de contorno (environment variables) son unha ferramenta clave para pasar información aos jobs, como configuración, rutas, claves API, etc.
Estas variables están dispoñibles dentro dos jobs como se fosen variables do sistema operativo (como nun terminal).
GitLab fornece unha chea de variables automáticas, dispoñibles en todos os pipelines.
Algunhas das máis útiles:
| Variable | Valor que fornece |
|---|---|
CI_COMMIT_BRANCH | Nome da rama do commit |
CI_JOB_NAME | Nome do job actual |
CI_PIPELINE_ID | ID do pipeline |
CI_PROJECT_NAME | Nome do proxecto |
Tamén se poden definir variables dentro do ficheiro .gitlab-ci.yml. Por exemplo:
variables:
APP_ENV: production
DEPLOY_PATH: /var/www/app
Ou dentro dun job:
deploy_job:
stage: deploy
variables:
DEPLOY_ENV: staging
script:
- echo "Despregando en $DEPLOY_ENV"
Secrets
Os secrets son información sensible que non debería escribirse directamente no código, como:
tokensde API.- Claves SSH.
- Variables de conexión (a bases de datos, AWS, etc.).
- Credenciais de Docker ou de servizos externos.
Todas elas son variables de contorno confidenciais que se deben almacenar de xeito seguro no GitLab, e utilizadas nos jobs do pipeline sen expoñerse.
Definición
Estas defínense na interface gráfica do propio Gitlab:
- Vai ao proxecto
Settings > CI/CD - Desprega a sección
Variables - Preme en
Add variablee introduce:KEY: nome da variable (ex:AWS_ACCESS_KEY)VALUE: o valor secreto- Opcional:
Protected: só dispoñible para ramas protexidas (comomain)Masked: ocúltase nos logs (obrigatorio que cumpra certos criterios)
No ficheiro .gitlab-ci.yml, simplemente chámase á variable como calquera variable de contorno:
deploy_job:
stage: deploy
script:
- echo "Despregando coa clave $API_KEY"
- curl -H "Authorization: Bearer $API_KEY" https://api.exemplo.com/deploy
Estas variables só poden ser vistas/modificadas por usuarios con rol de:
MaintainerOwner
Developers e roles inferiores non poden ver nin editar estas variables.