Looking for an English version?
¿Por qué scripts de Bash?
Notarás que en los proyectos de ejemplo puse todos los comandos en scripts de Bash. ¿Por qué? Nos proporciona 2 cosas.
- Nos permite ejecutar los comandos localmente (es decir,
./build.sh) - Hace que tu CI sea más portable. Casi cualquier sistema de CI puede ejecutar scripts de bash. La diferencia entre GitHub y GitLab está únicamente en cómo le indicamos al sistema qué script ejecutar y cuándo.
¿Nuevo Usuario de Bash?
Elegí Bash porque me resulta familiar (más que PowerShell) y porque es multiplataforma. Si estás empezando, recomiendo adquirir esta guía rápida. Lo más importante es asegurarte de agregar set -euo pipefail al inicio de tus scripts de bash para que el manejo de errores y los códigos de salida funcionen correctamente.
Una Nota Sobre las Variables
En los ejemplos de GitLab, notarás esta línea:
. <(sed -nr '/variables:/,$ s/ ([A-Z_]+): (.*)/\1=\2/ p' vars.yml)
Lo que hace esta línea es leer el archivo vars.yml, tomar la sección de variables y establecerlas como variables de entorno. Esto nos permite definir las variables una sola vez y usarlas tanto al ejecutar localmente como en el servidor de CI (este archivo se incluye en el .gitlab-ci.yml). El comando sed es algo así como magia negra, pero funciona. Lo encontré aquí: https://unix.stackexchange.com/questions/539009/export-environment-variables-parsed-from-yaml-text-file