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
- Pipelines: Seqüències de treball automatitzades que defineixen com es construeix, prova i desplega el codi.
 - Jobs: Tasques individuals dins d'un pipeline que executen scripts específics.
 - Stages: Agrupacions de jobs que s'executen en paral·lel dins d'un pipeline.
 - 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:
    - masterPas 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
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:
    - masterExemple 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:
    - masterExercicis Pràctics
Exercici 1: Crear un Pipeline Bàsic
- Crea un fitxer 
.gitlab-ci.ymlal teu projecte. - Defineix les stages 
build,testideploy. - Afegeix jobs per a cada stage amb scripts senzills (per exemple, 
echo "Construint..."). 
Exercici 2: Configurar un Runner
- Instal·la un GitLab Runner al teu sistema.
 - Registra el runner amb el teu projecte de GitLab.
 - Executa el pipeline creat en l'exercici anterior i verifica que els jobs s'executen correctament.
 
Errors Comuns i Consells
- Error de Sintaxi en 
.gitlab-ci.yml: Utilitza un validor de YAML per assegurar-te que el fitxer està ben format. - Runner No Disponible: Assegura't que el runner està actiu i correctament registrat.
 - 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.
Curs de CI/CD: Integració i Desplegament Continu
Mòdul 1: Introducció a CI/CD
Mòdul 2: Integració Contínua (CI)
- Introducció a la Integració Contínua
 - Configuració d'un Entorn de CI
 - Automatització de la Construcció
 - Proves Automatitzades
 - Integració amb Control de Versions
 
Mòdul 3: Desplegament Continu (CD)
- Introducció al Desplegament Continu
 - Automatització del Desplegament
 - Estratègies de Desplegament
 - Monitoratge i Retroalimentació
 
Mòdul 4: Pràctiques Avançades de CI/CD
Mòdul 5: Implementació de CI/CD en Projectes Reals
Mòdul 6: Eines i Tecnologies
Mòdul 7: Exercicis Pràctics
- Exercici 1: Configuració d'un Pipeline Bàsic
 - Exercici 2: Integració de Proves Automatitzades
 - Exercici 3: Desplegament en un Entorn de Producció
 - Exercici 4: Monitoratge i Retroalimentació
 
