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ó
