En aquest tema, aprendrem a configurar un entorn d'Integració Contínua (CI). La configuració d'un entorn de CI és un pas crucial per automatitzar la construcció, les proves i la integració del codi. Aquest procés assegura que els canvis en el codi es validin contínuament, reduint els errors i millorant la qualitat del programari.

Objectius

  • Entendre els components bàsics d'un entorn de CI.
  • Aprendre a configurar un servidor de CI.
  • Integrar el servidor de CI amb un sistema de control de versions.
  • Automatitzar la construcció i les proves del codi.

Components Bàsics d'un Entorn de CI

  1. Servidor de CI: És el component central que gestiona i executa les tasques d'integració contínua.
  2. Sistema de Control de Versions (VCS): Emmagatzema el codi font i permet la col·laboració entre desenvolupadors.
  3. Scripts de Construcció: Defineixen com construir i empaquetar el codi.
  4. Scripts de Proves: Defineixen com executar les proves automatitzades.
  5. Entorn d'Execució: On es desplega i s'executa el codi per a les proves.

Passos per Configurar un Entorn de CI

  1. Selecció del Servidor de CI

Hi ha diverses eines populars per configurar un servidor de CI. Algunes de les més utilitzades són:

  • Jenkins
  • GitLab CI/CD
  • CircleCI
  • Travis CI

  1. Instal·lació del Servidor de CI

Exemple: Instal·lació de Jenkins

  1. Descàrrega i Instal·lació:

    • Descarrega Jenkins des del lloc oficial.
    • Instal·la Jenkins seguint les instruccions per al teu sistema operatiu.
  2. Configuració Inicial:

    • Accedeix a Jenkins a través del navegador (http://localhost:8080).
    • Introdueix la contrasenya inicial que es troba al fitxer initialAdminPassword.
    • Instal·la els plugins recomanats durant la configuració inicial.

  1. Integració amb el Sistema de Control de Versions

Exemple: Integració amb GitHub

  1. Configuració del Repositori:

    • Crea un repositori a GitHub o utilitza un repositori existent.
    • Afegeix Jenkins com a usuari col·laborador al repositori.
  2. Configuració de Jenkins:

    • A Jenkins, crea un nou projecte de tipus "Freestyle".
    • A la secció "Source Code Management", selecciona "Git" i introdueix l'URL del repositori de GitHub.
    • Configura les credencials d'accés a GitHub.

  1. Automatització de la Construcció

Exemple: Script de Construcció amb Maven

  1. Configuració del Script de Construcció:

    • Afegeix un fitxer pom.xml al teu projecte amb la configuració de Maven.
    • Defineix les dependències i els plugins necessaris per a la construcció del projecte.
  2. Configuració de Jenkins:

    • A la secció "Build" del projecte a Jenkins, afegeix un pas de construcció de tipus "Invoke top-level Maven targets".
    • Especifica els objectius de Maven, per exemple, clean install.

  1. Automatització de les Proves

Exemple: Script de Proves amb JUnit

  1. Configuració del Script de Proves:

    • Afegeix les dependències de JUnit al fitxer pom.xml.
    • Escriu les proves unitàries utilitzant JUnit.
  2. Configuració de Jenkins:

    • A la secció "Post-build Actions" del projecte a Jenkins, afegeix una acció de tipus "Publish JUnit test result report".
    • Especifica el patró dels fitxers de resultats de les proves, per exemple, **/target/surefire-reports/*.xml.

Exemple Pràctic

A continuació, es mostra un exemple pràctic de configuració d'un entorn de CI amb Jenkins i GitHub:

Pas 1: Crear un Repositori a GitHub

  1. Crea un nou repositori a GitHub anomenat example-ci-project.
  2. Clona el repositori al teu ordinador local.
git clone https://github.com/usuari/example-ci-project.git
cd example-ci-project

Pas 2: Configurar el Projecte Maven

  1. Afegeix un fitxer pom.xml al directori del projecte:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>example-ci-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
  1. Afegeix una classe de prova JUnit:
package com.example;

import org.junit.Test;
import static org.junit.Assert.assertTrue;

public class ExampleTest {
    @Test
    public void testExample() {
        assertTrue(true);
    }
}
  1. Puja els canvis al repositori de GitHub:
git add .
git commit -m "Initial commit"
git push origin main

Pas 3: Configurar Jenkins

  1. Crea un nou projecte de tipus "Freestyle" a Jenkins anomenat example-ci-project.
  2. A la secció "Source Code Management", selecciona "Git" i introdueix l'URL del repositori de GitHub.
  3. A la secció "Build", afegeix un pas de construcció de tipus "Invoke top-level Maven targets" i especifica clean install.
  4. A la secció "Post-build Actions", afegeix una acció de tipus "Publish JUnit test result report" i especifica **/target/surefire-reports/*.xml.

Pas 4: Executar el Pipeline

  1. Desa la configuració del projecte a Jenkins.
  2. Executa el pipeline manualment per verificar que tot està configurat correctament.
  3. Revisa els resultats de la construcció i les proves a la interfície de Jenkins.

Resum

En aquesta secció, hem après a configurar un entorn de CI utilitzant Jenkins i GitHub. Hem vist com instal·lar Jenkins, integrar-lo amb un sistema de control de versions, automatitzar la construcció del codi amb Maven i executar proves automatitzades amb JUnit. Aquesta configuració bàsica és el primer pas per implementar un procés d'integració contínua efectiu en els teus projectes de programari.

© Copyright 2024. Tots els drets reservats