Introducció a GitLab CI/CD

GitLab CI/CD és una de les eines més populars per a la integració i desplegament continu. GitLab ofereix una solució completa que inclou control de versions, gestió de projectes i CI/CD en una sola plataforma. Això facilita la col·laboració entre equips i l'automatització de tot el cicle de vida del desenvolupament de programari.

Conceptes Clau

  1. Pipelines: Seqüències de treball automatitzades que defineixen com es construeix, prova i desplega el codi.
  2. Jobs: Tasques individuals dins d'un pipeline que executen scripts específics.
  3. Stages: Agrupacions de jobs que s'executen en paral·lel dins d'un pipeline.
  4. Runners: Servidors que executen els jobs definits en els pipelines.

Configuració de GitLab CI/CD

Pas 1: Crear un Fitxer .gitlab-ci.yml

El fitxer .gitlab-ci.yml és el cor de la configuració de CI/CD en GitLab. Aquest fitxer defineix els pipelines, stages i jobs.

Exemple Bàsic de .gitlab-ci.yml

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Compilant el projecte..."
    - make build

test_job:
  stage: test
  script:
    - echo "Executant les proves..."
    - make test

deploy_job:
  stage: deploy
  script:
    - echo "Desplegant l'aplicació..."
    - make deploy
  only:
    - master

Pas 2: Configurar un Runner

Els runners són necessaris per executar els jobs definits en el fitxer .gitlab-ci.yml. GitLab ofereix runners compartits, però també pots configurar runners específics per al teu projecte.

Instal·lació d'un Runner

# Descarregar el binari del runner
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Donar permisos d'execució
sudo chmod +x /usr/local/bin/gitlab-runner

# Instal·lar i iniciar el servei
sudo gitlab-runner install
sudo gitlab-runner start

Registrar un Runner

sudo gitlab-runner register

Durant el procés de registre, se't demanarà la següent informació:

  • URL del servidor de GitLab
  • Token de registre (disponible a la interfície de GitLab)
  • Descripció del runner
  • Etiquetes (tags) per identificar el runner
  • Executor (per exemple, shell, docker, etc.)

Exemples Pràctics

Exemple 1: Pipeline per a una Aplicació Web

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - npm install
    - npm run build

test_job:
  stage: test
  script:
    - npm test

deploy_job:
  stage: deploy
  script:
    - scp -r ./dist user@server:/var/www/html
  only:
    - master

Exemple 2: Pipeline amb Docker

stages:
  - build
  - test
  - deploy

variables:
  DOCKER_DRIVER: overlay2

services:
  - docker:dind

before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY

build_job:
  stage: build
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA

test_job:
  stage: test
  script:
    - docker run $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA npm test

deploy_job:
  stage: deploy
  script:
    - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - docker run -d -p 80:80 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  only:
    - master

Exercicis Pràctics

Exercici 1: Crear un Pipeline Bàsic

  1. Crea un fitxer .gitlab-ci.yml al teu projecte.
  2. Defineix les stages build, test i deploy.
  3. Afegeix jobs per a cada stage amb scripts senzills (per exemple, echo "Construint...").

Exercici 2: Configurar un Runner

  1. Instal·la un GitLab Runner al teu sistema.
  2. Registra el runner amb el teu projecte de GitLab.
  3. Executa el pipeline creat en l'exercici anterior i verifica que els jobs s'executen correctament.

Errors Comuns i Consells

  1. Error de Sintaxi en .gitlab-ci.yml: Utilitza un validor de YAML per assegurar-te que el fitxer està ben format.
  2. Runner No Disponible: Assegura't que el runner està actiu i correctament registrat.
  3. Problemes de Permisos: Verifica que el runner té els permisos necessaris per executar els scripts.

Conclusió

GitLab CI/CD és una eina potent que facilita la integració i desplegament continu de projectes de programari. Amb una configuració adequada del fitxer .gitlab-ci.yml i els runners, pots automatitzar tot el procés de construcció, prova i desplegament, millorant així l'eficiència i la qualitat del teu desenvolupament de programari.

© Copyright 2024. Tots els drets reservats