¿Qué son los entornos dinámicos (dynamic environments)?
En este punto tenemos una pipeline operacional, sin embargo aún tenemos solo dos entornos, staging y production. Aún necesitamos un entorno para cada rama que vamos creando, y a estas se les llama entornos dinámicos (dynamic environments).
¿En qué consisten los dynamic environments (entornos dinámicos)?
- Staging y production están ligadas a la rama master.
- Para desplegar una rama a un entorno es requerido un nuevo entorno llamado review (de revisión).
- Conforme trabajamos con multiples ramas, se hace necesario crear entornos para cada una de ellas.
- Cada merge request es desplegado en un entorno de forma que podamos revisar los cambios.
- En algunas ocasiones se requiere realizar pruebas adicionales en sistemas que han sido desplegados.
- Los cambios pueden ser revisados por encargados de pruebas de calidad como equipos de QA, product managers o incluso el mismo cliente.
Creamos una nueva stage para review (revisión o prueba).
stages:
- build
- test
- deploy review
- deploy staging
- deploy production
- test production
Agregamos el stage “deploy review”.
deploy review:
stage: deploy review
only:
- branches
except:
- main
environment:
name: review/$CI_COMMIT_REF_NAME
url: https://arumals-$CI_ENVIRONMENT_SLUG.surge.sh
script:
- npm i -g surge
- surge --project ./public --domain arumals-$CI_ENVIRONMENT_SLUG.surge.sh
Ahora hemos especificado que review solo hace despliegues de ramas (branches) a excepción de la rama main. El nombre del entorno (environment) esta determinado por CI_COMMIT_REF_NAME y el url por CI_ENVIRONMENT_SLUG.