🥇 Dynamic environments (entornos dinámicos)

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