Variables de entorno predefinidas: ¿Cómo se utilizan?

☆ ¿Cuáles son las variables de entorno predefinidas de GitLab?
GitLab provee una gran lista de variables predefinidas, la lista de estas variables puede ser consultada en el sitio https://docs.gitlab.com/ee/ci/variables/predefined_variables.html (archive.org).
Por ejemplo la variable CI_COMMIT_SHORT_SHA provee un identificador único asociado al hash de nuestro commit.
Vamos a abrir el archivo src/pages/index.js y podemos agregar la siguiente línea como parte del cuerpo del componente REact.
<div>Version %%VERSION%%</div>
Para mostrar la versión podemos reemplazar el contenido utilizando el comando sed posterior a la compilación del proyecto Gatsby.
build website:
stage: build
script:
- npm i
- npm i -g gatsby-cli
- gatsby build
- sed -i "s/%%VERSION%%/$CI_COMMIT_SHORT_SHA/" ./public/index.html
Al empujar los cambios veremos que en el lugar del texto %%VERSION%% podemos ver el valor del hash del commit.
☆ Tests sobre deployments
Al finalizar el despliegue de una aplicación podemos realizar un test sobre un deployment. Para ello creamos un nuevo stage para este propósito.
stages:
- build
- test
- deploy
- deployment test
image: node
build website:
stage: build
script:
- npm i
- npm i -g gatsby-cli
- gatsby build
- sed -i "s/%%VERSION%%/$CI_COMMIT_SHORT_SHA/" ./public/index.html
artifacts:
paths:
- ./public
test index:
stage: test
script:
- grep "Gatsby" "./public/index.html"
deploy static website:
stage: deploy
script:
- npm i -g surge
- surge --project ./public --domain arumals-static.surge.sh
test deployment:
image: alpine
stage: deployment test
script:
- apk add --no-cache curl
- curl -s "https://subdominio.surge.sh/" | grep -q "Hi people"
- curl -s "https://subdominio.surge.sh/" | grep -q "$CI_COMMIT_SHORT_SHA"
Al ejecutar el post deployment usamos la imagen optimizada alpine, instalamos sobre esta curl y verificamos que sobre la url que hemos desplegado sea visible el contenido de la página.