¿Por qué los jobs fallan?
Cada que un comando es ejecutado, el sistema responde con un estatus, este puede ser:
- 0, para una ejecución exitosa.
- 1 a 255, para reportar un error.
Una forma de validar la integridad de nuestro proyecto es buscar un patrón dentro de los archivos.
Dentro del proyecto, en el directorio public vamos a verificar que la palabra “Gatsby” aparezca dentro del archivo “index.html”, esto debido a que cuando se genera dicho archivo el contenido de este incluye dicha palabra.
cd public
grep "Gatsby" index.html
echo $?
0
Si por ejemplo intentamos buscar un texto que sabemos que no existe dentro de index.html, la salida seria la siguiente.
grep "aleluya" index.html
echo $?
1
El comando
echo $?
nos entrega el código de la última respuesta de la línea de comandos.
Ahora podemos expandir nuestro archivo .gitlab-ci.yml para que ejecute el escenario de prueba.
stages:
- build
- test
build website:
stage: build
image: node
script:
- npm i
- npm i -g gatsby-cli
- gatsby build
artifacts:
paths:
- ./public
test artifact:
image: node
script:
- grep "Gatsby" "./public/index.html"
Podemos confirmar que la ejecución del pipeline se realiza de forma exitosa, el artifact es compartido a través de ambas stages y en el stage de test se verifica que index.html contenga el texto “Gatsby”.