🥇 Uso de branches (ramas)

Trabajar con branches (ramas) es una forma sustentable de prevenir el uso de la branch master/main para razones de despliegue esto debido a que al utilizar las ramas se evita corromper la rama principal y esto permite que siempre sea posible realizar el despliegue de manera continua.

🍿 ¿Cuáles son las razones para trabajar con ramas?

Cuando se trabaja con una rama tipo feature (nueva funcionalidad), task (tarea) o bugfix (corrección), el trabajo puede ser realizado de forma individual por cada uno de los programadores.

Cuando el trabajo se completa, se pueden realizar las pruebas necesarias antes de incorporar el contenido de esta rama a la rama master (a este proceso se le conoce como merge), y realizar el despliegue a producción.

🍿 ¿Cuáles son las estrategias para el manejo de ramas?

Existen diferentes estrategias para el manejo de ramas.

  • La mas conocida es el uso de GitFlow.
  • Se puede utilizar cualquier modelo que se ajuste a los requerimientos.
  • Hay que evitar utilizar una sola rama.

🍿 ¿Cómo especificar la rama desplegada en producción?

Para especificar que ramas pueden ser liberadas a producción se utiliza la propiedad only.

Abrimos nuestro archivo .gitlba-ci.yml y actualizamos los entornos

deploy staging:
    ...
    only:
        - main
    script:
        - npm i -g surge
        ...

deploy production:
    ...
    only:
        - main
    when: manual
    ...

test deployment:
    ..
    only:
        - main
    script:
        - apk add --no-cache curl
        ...

Empujamos nuestros cambios y no veremos ningún cambio real en la pipeline.

Creamos una nueva branch para feature llamada feature/001_mi_primer_feature y empujamos esta branch a Gitlag.

git checkout -b feature/001_mi_primer_feature
git push

Ahora veremos que se empieza realizar un nuevo despliegue, en este caso sin los últimos 3 entornos (staging, production y test production).