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
- 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.
- 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:
- 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.
- 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.
- 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
- Crear el fitxer
.travis.yml
al directori arrel del projecte:
- Connectar el Repositori a Travis CI:
- Inicia sessió a Travis CI amb el teu compte de GitHub.
- Activa el repositori que vols integrar.
- Fer un Commit i Push:
- 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
- Crear un nou projecte de Node.js:
- 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); });
- Modificar el fitxer
package.json
per afegir un script de prova:
- Crear el fitxer
.travis.yml
:
- Connectar el Repositori a Travis CI i fer un commit:
- 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
- Creant un Repositori
- Clonant un Repositori
- Flux de Treball Bàsic de Git
- Preparant i Cometent Canvis
- Veient l'Historial de Commits
Mòdul 3: Branques i Fusió
- Entenent les Branques
- Creant i Canviant de Branques
- Fusionant Branques
- Resolent Conflictes de Fusió
- Gestió de Branques
Mòdul 4: Treballant amb Repositoris Remots
- Entenent els Repositoris Remots
- Afegint un Repositori Remot
- Recuperant i Traient Canvis
- Empenyent Canvis
- Seguint Branques
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
- Forking i Pull Requests
- Revisions de Codi amb Git
- Flux de Treball Git Flow
- GitHub Flow
- Integració Contínua amb Git
Mòdul 8: Millors Pràctiques i Consells de Git
- Escrivint Bons Missatges de Commit
- Mantenint un Historial Netejat
- Ignorant Fitxers amb .gitignore
- Millors Pràctiques de Seguretat
- Consells de Rendiment
Mòdul 9: Resolució de Problemes i Depuració
- Problemes Comuns de Git
- Desfent Canvis
- Recuperant Commits Perduts
- Tractant amb Repositoris Corruptes
- Tècniques Avançades de Depuració