Práctica de Gitlab
Práctica de Gitlab
Práctica de Gitlab
Vamos a crear nuestra cuenta en GitLab, que va a ser la herramienta utilizada para llevar
a la práctica nuestros Pipelines.
2. Los datos que debemos completar son los siguientes, automáticamente nos
informará si el nombre de usuario o email seleccionado está en uso.
1
4. Confirmamos nuestra cuenta, con lo cual ya estamos en condiciones de loguearnos.
5. En la pantalla inicial de bienvenida seleccionamos “Create Project”, luego “Create
blank Project” y finalmente, completamos el dato de “Project Name”; dejamos la
visibilidad de este en “Private”.
1) 2)
3)
6. Por defecto se nos crea un Repositorio Git en el cual podemos subir nuestros
archivos, en el mismo se incluye un README.md con instrucciones básicas para
dicho fin. Si bien como en todo repositorio Git podemos subir nuestros archivos a
través de la interfaz Web, no es su uso habitual, así que ahora prepararemos nuestro
entorno para poder subir código desde nuestro equipo; nos llevara unos pasos en los
cuales debemos utilizar nuestra línea de comandos / consola
6.1. Abrimos en NUESTRO EQUIPO un Shell como Bash o la Terminal de Linux con el
propósito de generar una SSH Key, para ello ejecutamos:
ssh-keygen -t rsa
2
Nos preguntará por un nombre y un passphrase (opcional), dejamos todo por
defecto
Leemos el contenido del mismo con
cat ~/.ssh/id_rsa.pub
se nos mostrará un contenido tal como
cat ~/.ssh/id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABgQCmixQfacbczvWXZmkQJ6+UqNRYQuglycl+0qJ0gvsbX
gG8D9MjwClrQQPeKmmOpSSZPmog3anGMEv3CraRJD0nwjml+NSPRyrHSV+l7V9x++gxk+b52l
xKnQuHMzrgWt62uflABx8hi5pzgrC1SpF3fkyzG25sO7xNclJ9cKuAwzfHCJ1JEOCQQ1yUsu5
0+xEgGdo3AjaGpAn04Mqniq435CwmMbEDZqWpcWCqw7V0gwgonbPBYrrprTUIRpAu7az7RoW4
z1GUzMWEr9KICfpgvBBUgmfwULKxSaGuetHfRAa9NQenSc2emaMSURdxkkm8b+r2xyK7TJ6y+
140rVkfXKHm8jdEz9XJlyJBn3QoeYLShYp9TmSiGwTy9SCcuUljQO4K3eSA49Zbh+ZUjE0H2m
v9ws9TVYl88mww+oLxgj3z+AJN5f8DEaFm9mhx+CBgfmQzOKkXes+8jveUgjrLO8Zzg/rsTB9
h+h2dCPMWKcexhSvwqpHPIxpW6U7lrHs= mundose@mundose
6.2. Nos dirigimos al Gitlab, en la sección “SSH Keys” (SSH Keys · User Settings ·
GitLab ”
6.3. Copiamos todo el contenido que se mostró en el punto 6.1 con el comando cat (a
partir de que comienza con ssh-rsa inclusive) y lo pegamos en la sección “Key”, le
damos un nombre en “Title” y opcionalmente una fecha de expiración, luego de
ello en “Add Key”.
6.4. Una vez guardada la misma en GitLab, debemos verificar que podemos
conectarnos desde nuestro entorno, para ello volvemos a nuestro Shell y
ejecutamos
ssh -T [email protected]
3
Si es satisfactorio, debemos recibir el mensaje “Welcome to GitLab, @MINOMBRE DE
USUARIO!”
git init
git add .
4
Creamos nuestro primer pipeline
Ahora vamos a crear la definición de un pipeline en GitLab es el archivo .gitlab-ci.yml, el
cual debe estar alojado en la raíz de nuestro proyecto.
Para ello, abrimos un Shell en nuestro equipo, nos dirigimos a la raíz de nuestro proyecto
y allí creamos con el editor de texto de nuestra preferencia el archivo .gitlab-ci.yml
1 - Configuramos la imagen
Vamos a definir qué imagen de Docker se va a utilizar para ejecutar los pasos del
pipeline
image: node:14
5
2 - Creamos los stages
● test
● build
stages:
- test
- build
Si bien esta definición es correcta, básicamente este pipeline no hará nada ya que los
stages carecen de jobs, que es donde se ejecutan los trabajos.
nombre_job
script:
Nosotros en primer lugar vamos a definir un job para nuestro stage “test”, el cual
ejecutara los tests especificados para este código, con lo cual el comando será:
“npm run test”.
6
El codigo de nuestro .gitlab-ci.yml con el agregado del job deberá ser:
image: node:14
stages:
- test
- build
test_job:
stage: test
script:
Hasta ahora, definimos el pipeline, pero aun GitLab no se ha enterado de los cambios, es
momento que lo haga y para ello debemos impactar estos cambios que aún están en
nuestro equipo en el repositorio, es por eso que debemos hacer push de este nuevo
archivo, ejecutando en nuestro equipo:
git add .
git commit -m “Added pipeline”
git push
7
Si ingresamos en el número del pipeline allí veremos los stages que se ejecutaron:
Aquí vemos que solo se ejecutó el stage BUILD, y su job “test_job”, si ingresamos en él
observaremos todo el detalle de la ejecución:
8
Detalles de la ejecución del “test_job”, en donde se observa el Job succeeded
Si realizamos un cambio en algún archivo del código fuente (por ejemplo el mensaje
mostrado en index.html) y al realizar el push observar el comportamiento del pipeline.
image: node:14
stages:
- test
- build
test_job:
stage: test
script:
- npm install
build_job:
stage: build
script:
9
Nuestro Pipeline se debió ejecutar de manera satisfactoria, con lo cual al ver los detalles
del mismos deberíamos verlo así (lo vemos en el menú CI/CD Pipelines # de pipeline)
Ahora lo que vamos a realizar son modificaciones en el archivo server.js con el propósito
que fallen nuestras stages.
Cuando un Pipeline falla, en este ejemplo hicimos fallar el stage de test, vamos a ver en
nuestro resumen del Pipeline
Y es allí cuando debemos investigar porque sucedió, en este caso nos vamos a dirigir al
test_job y nos abrirá el verbose / debug de todo el proceso, desde que se genera el
entorno para las pruebas hasta el momento en que se prueba.
10
11