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: - 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
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
- Crea un fitxer
.gitlab-ci.yml
al teu projecte. - Defineix les stages
build
,test
ideploy
. - 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ó