¿Cómo utilizar variables dentro de la configuración de GitLab?
Ya hemos utilizado variables en lecciones pasadas, cuando creamos las credenciales SURGE_LOGIN y SURGE_TOKEN. Sin embargo también existen variables a nivel de nuestro archivo yaml.
En nuestra configuración actual hemos definido dos dominios, uno para staging (arumals-staging-static.surge.sh) y otro para producción (arumals-static.surge.sh).
Creamos nuestro bloque con variables enseguida de cache.
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
variables:
STAGING_DOMAIN: dominio-staging-static.surge.sh
PRODUCTION_DOMAIN: dominio-static.surge.sh
Ahora podemos reemplazar los lugares en donde estos dominios están referenciados.
deploy staging:
...
environment:
name: staging
url: https://$STAGING_DOMAIN
...
deploy production:
...
environment:
name: production
url: https://$PRODUCTION_DOMAIN
script:
...
- surge --project ./public --domain $PRODUCTION_DOMAIN
test deployment:
...
script:
...
- curl -s "https://$PRODUCTION_DOMAIN/" | grep -q "Hi people"
- curl -s "https://$PRODUCTION_DOMAIN/" | grep -q "$CI_COMMIT_SHORT_SHA"
Cuando volvamos a empujar los cambios podremos ver que nuestro despliegue funciona reemplazando las variables por su respectivo valor.
$ surge --project ./public --domain $STAGING_DOMAIN
Running as ##@gmail.com (Student)
project: ./public
domain: dominio-static.surge.sh
encryption: *.surge.sh, surge.sh (124 days)
IP: ###.###.###.###
Las variables permiten almacenar valores que después son reutilizados a través de la configuración de nuestro archivo .gitlab-ci.yml. Esto simplifica su mantenimiento ya que en caso de realizar actualizaciones, solo requerimos hacerlas sobre el valor de la variable y este se propagara a todos los lugres donde esta se utilice.