Introducció
L'automatització de la construcció és un component fonamental de la Integració Contínua (CI). Permet compilar el codi font, executar proves i preparar el programari per a la seva distribució de manera automàtica. Això garanteix que cada canvi en el codi sigui verificat i integrat de manera eficient i consistent.
Objectius
- Entendre la importància de l'automatització de la construcció.
- Aprendre a configurar scripts de construcció.
- Conèixer les eines més utilitzades per a l'automatització de la construcció.
- Implementar un procés de construcció automatitzat.
Conceptes Clau
- Script de Construcció: Un conjunt d'instruccions que defineixen com compilar i empaquetar el codi.
- Eines de Construcció: Programari que facilita la creació i execució d'scripts de construcció.
- Integració Contínua (CI): Pràctica de fusionar canvis de codi de manera freqüent i automàtica.
Eines Populars per a l'Automatització de la Construcció
- Maven: Utilitzat principalment en projectes Java.
- Gradle: Flexible i potent, també popular en projectes Java.
- Ant: Una eina més antiga però encara utilitzada en alguns projectes Java.
- Make: Utilitzat en projectes C/C++.
- NPM/Yarn: Utilitzats en projectes JavaScript/Node.js.
Configuració d'un Script de Construcció
Exemple amb Maven
Maven és una eina de construcció i gestió de projectes per a Java. Utilitza un fitxer pom.xml
per definir el projecte, les seves dependències i les tasques de construcció.
Pas 1: Crear el fitxer pom.xml
<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>my-app</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- Dependències del projecte --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> </project>
Pas 2: Executar la construcció
Aquest comandament neteja el projecte (elimina fitxers generats anteriorment) i compila el codi, executa les proves i empaqueta l'aplicació.
Exemple amb Gradle
Gradle és una eina de construcció moderna que utilitza un fitxer build.gradle
per definir les tasques de construcció.
Pas 1: Crear el fitxer build.gradle
plugins { id 'java' } group 'com.example' version '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { testImplementation 'junit:junit:4.12' } test { useJUnitPlatform() }
Pas 2: Executar la construcció
Aquest comandament compila el codi, executa les proves i empaqueta l'aplicació.
Exercici Pràctic
Objectiu
Configurar un script de construcció per a un projecte Java utilitzant Maven.
Passos
-
Crear un projecte Java:
- Crear una estructura de directoris:
mkdir -p my-app/src/main/java/com/example mkdir -p my-app/src/test/java/com/example
- Crear una estructura de directoris:
-
Crear el fitxer
pom.xml
:- A la carpeta
my-app
, crear el fitxerpom.xml
amb el contingut proporcionat anteriorment.
- A la carpeta
-
Afegir codi font:
- Crear un fitxer
App.java
asrc/main/java/com/example
:package com.example; public class App { public static void main(String[] args) { System.out.println("Hello, World!"); } }
- Crear un fitxer
-
Afegir proves:
- Crear un fitxer
AppTest.java
asrc/test/java/com/example
:package com.example; import org.junit.Test; import static org.junit.Assert.*; public class AppTest { @Test public void testApp() { assertTrue(true); } }
- Crear un fitxer
-
Executar la construcció:
- Des de la carpeta
my-app
, executar:mvn clean install
- Des de la carpeta
Solució
Si tot està configurat correctament, el comandament mvn clean install
hauria de compilar el codi, executar les proves i empaquetar l'aplicació sense errors.
Errors Comuns i Consells
- Error: No s'ha trobat el fitxer
pom.xml
:- Assegura't que estàs executant el comandament des de la carpeta correcta.
- Error: Dependència no trobada:
- Verifica que les dependències estan correctament especificades al fitxer
pom.xml
.
- Verifica que les dependències estan correctament especificades al fitxer
- Consell: Utilitza un entorn de desenvolupament integrat (IDE) com IntelliJ IDEA o Eclipse per facilitar la gestió del projecte i les dependències.
Conclusió
L'automatització de la construcció és essencial per garantir que el codi es compila i es prova de manera consistent. Utilitzant eines com Maven o Gradle, podem definir processos de construcció que s'executen automàticament cada vegada que es realitzen canvis en el codi, millorant així la qualitat i l'eficiència del desenvolupament del 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ó