Introducció

La integració contínua (CI) és una pràctica de desenvolupament de programari on els desenvolupadors integren el seu codi en un repositori compartit diverses vegades al dia. Cada integració és verificada per una construcció automatitzada (incloent proves) per detectar errors tan aviat com sigui possible. En aquest tema, aprendrem com utilitzar Git en el context de la integració contínua.

Conceptes Clau

  • Integració Contínua (CI): Procés de combinar canvis de codi de diversos desenvolupadors en un projecte de manera freqüent.
  • Construcció Automatitzada: Procés automatitzat que compila el codi i executa proves per assegurar-se que els canvis no introdueixen errors.
  • Servidor de CI: Eina que automatitza el procés de construcció i prova del codi. Exemples inclouen Jenkins, Travis CI, CircleCI, etc.

Passos per Configurar la Integració Contínua amb Git

  1. Seleccionar un Servei de CI

Hi ha diversos serveis de CI disponibles, tant de codi obert com comercials. Alguns dels més populars són:

  • Jenkins: Eina de codi obert que permet la configuració de treballs de construcció i proves.
  • Travis CI: Servei de CI allotjat que s'integra fàcilment amb GitHub.
  • CircleCI: Servei de CI que ofereix integració amb GitHub i Bitbucket.

  1. Configurar el Repositori de Git

Per utilitzar un servei de CI, primer has de configurar el teu repositori de Git per treballar amb aquest servei. Això generalment implica:

  • Afegir un fitxer de configuració: La majoria dels serveis de CI requereixen un fitxer de configuració al repositori per definir com s'ha de construir i provar el projecte. Per exemple, Travis CI utilitza un fitxer .travis.yml.

Exemple de fitxer .travis.yml per un projecte de Node.js:

language: node_js
node_js:
  - "14"
script:
  - npm install
  - npm test

  1. Integrar el Servei de CI amb el Repositori

  • Connectar el Repositori: La majoria dels serveis de CI ofereixen una interfície web on pots connectar el teu repositori de GitHub, GitLab o Bitbucket.
  • Configurar Webhooks: Alguns serveis requereixen configurar webhooks per notificar el servei de CI quan hi ha nous commits o pull requests.

  1. Executar Construccions i Proves

Un cop configurat, cada vegada que fas un commit o obres una pull request, el servei de CI:

  • Clonarà el Repositori: El servei clonarà el repositori en un entorn d'execució.
  • Executarà el Fitxer de Configuració: Seguirà les instruccions del fitxer de configuració per construir i provar el projecte.
  • Reportarà els Resultats: Notificarà els resultats de la construcció i les proves, generalment a través de la interfície web del servei de CI i/o correu electrònic.

  1. Revisar i Corregir Errors

  • Revisar els Logs: Si la construcció o les proves fallen, revisa els logs proporcionats pel servei de CI per identificar i corregir els errors.
  • Fer Commits de Correcció: Fes els canvis necessaris al codi i fes nous commits per desencadenar noves construccions i proves.

Exemple Pràctic

Configuració de Travis CI amb un Projecte de Python

  1. Crear el fitxer .travis.yml al directori arrel del projecte:
language: python
python:
  - "3.8"
install:
  - pip install -r requirements.txt
script:
  - pytest
  1. Connectar el Repositori a Travis CI:
  • Inicia sessió a Travis CI amb el teu compte de GitHub.
  • Activa el repositori que vols integrar.
  1. Fer un Commit i Push:
git add .travis.yml
git commit -m "Add Travis CI configuration"
git push origin main
  1. Revisar els Resultats a Travis CI:
  • Travis CI clonarà el repositori, instal·larà les dependències i executarà les proves definides al fitxer .travis.yml.
  • Revisa els resultats a la interfície web de Travis CI.

Exercici Pràctic

Objectiu

Configurar un projecte de Node.js per utilitzar Travis CI per a la integració contínua.

Passos

  1. Crear un nou projecte de Node.js:
mkdir my-node-project
cd my-node-project
npm init -y
npm install --save-dev jest
  1. Afegir un fitxer de prova:

Crea un fitxer sum.test.js al directori __tests__:

// __tests__/sum.test.js
const sum = (a, b) => a + b;

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
  1. Modificar el fitxer package.json per afegir un script de prova:
"scripts": {
  "test": "jest"
}
  1. Crear el fitxer .travis.yml:
language: node_js
node_js:
  - "14"
script:
  - npm install
  - npm test
  1. Connectar el Repositori a Travis CI i fer un commit:
git add .
git commit -m "Setup Travis CI for Node.js project"
git push origin main
  1. Revisar els Resultats a Travis CI.

Conclusió

La integració contínua amb Git és una pràctica essencial per assegurar la qualitat i la fiabilitat del codi en projectes de desenvolupament de programari. Mitjançant l'ús de serveis de CI com Travis CI, Jenkins o CircleCI, pots automatitzar la construcció i prova del teu codi, detectant errors de manera primerenca i millorant la col·laboració entre els membres de l'equip.

Dominar Git: De Principiant a Avançat

Mòdul 1: Introducció a Git

Mòdul 2: Operacions Bàsiques de Git

Mòdul 3: Branques i Fusió

Mòdul 4: Treballant amb Repositoris Remots

Mòdul 5: Operacions Avançades de Git

Mòdul 6: Eines i Tècniques de Git

Mòdul 7: Estratègies de Col·laboració i Flux de Treball

Mòdul 8: Millors Pràctiques i Consells de Git

Mòdul 9: Resolució de Problemes i Depuració

Mòdul 10: Git en el Món Real

© Copyright 2024. Tots els drets reservats