Entornos dinámicos en GitLab ¿Cómo configurarlos?

Entornos dinámicos en GitLab ¿Cómo configurarlos?

¿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.