Introducción a Travis CI

Travis CI es una herramienta de integración continua que se integra perfectamente con GitHub. Permite a los desarrolladores automatizar la construcción y prueba de su código cada vez que se realiza un commit o pull request en su repositorio de GitHub.

Conceptos Clave

  1. Repositorio: El lugar donde se almacena el código fuente.
  2. Build: El proceso de compilar y probar el código.
  3. Job: Una unidad de trabajo que se ejecuta en un entorno aislado.
  4. Pipeline: Una serie de jobs que se ejecutan en secuencia o en paralelo.

Configuración Básica de Travis CI

Paso 1: Registro y Autenticación

  1. Registro en Travis CI:

    • Visita Travis CI y regístrate usando tu cuenta de GitHub.
    • Autoriza a Travis CI para acceder a tus repositorios.
  2. Activar un Repositorio:

    • En el panel de Travis CI, selecciona el repositorio que deseas integrar y actívalo.

Paso 2: Archivo de Configuración .travis.yml

El archivo .travis.yml en la raíz de tu repositorio define cómo Travis CI debe construir y probar tu proyecto.

Ejemplo Básico de .travis.yml

language: python
python:
  - "3.8"
install:
  - pip install -r requirements.txt
script:
  - pytest

Explicación del Ejemplo

  • language: Define el lenguaje de programación. En este caso, Python.
  • python: Especifica las versiones de Python a utilizar.
  • install: Comandos para instalar las dependencias.
  • script: Comandos para ejecutar las pruebas.

Paso 3: Ejecutar una Build

  1. Commit y Push:

    • Realiza un commit del archivo .travis.yml y haz push a tu repositorio de GitHub.
  2. Verificar en Travis CI:

    • Travis CI detectará el nuevo commit y comenzará la build automáticamente.
    • Puedes seguir el progreso y ver los resultados en el panel de Travis CI.

Configuración Avanzada

Matrices de Build

Permiten ejecutar múltiples combinaciones de versiones de lenguajes y dependencias.

Ejemplo de Matriz de Build

language: python
python:
  - "3.7"
  - "3.8"
  - "3.9"
env:
  - DJANGO=2.2
  - DJANGO=3.0
install:
  - pip install -r requirements.txt
  - pip install django==$DJANGO
script:
  - pytest

Notificaciones

Puedes configurar Travis CI para enviar notificaciones sobre el estado de la build.

Ejemplo de Notificaciones

notifications:
  email:
    recipients:
      - [email protected]
    on_success: never
    on_failure: always

Despliegue Automático

Travis CI puede desplegar tu aplicación automáticamente después de una build exitosa.

Ejemplo de Despliegue a Heroku

deploy:
  provider: heroku
  api_key:
    secure: "YOUR_ENCRYPTED_API_KEY"
  app: your-app-name
  on:
    branch: main

Ejercicio Práctico

Ejercicio: Configuración de Travis CI para un Proyecto Node.js

  1. Crear un Proyecto Node.js:

    • Inicializa un proyecto Node.js y añade un archivo index.js y un archivo de prueba test.js.
  2. Archivo .travis.yml:

    • Crea un archivo .travis.yml en la raíz del proyecto con el siguiente contenido:
language: node_js
node_js:
  - "14"
install:
  - npm install
script:
  - npm test
  1. Commit y Push:

    • Realiza un commit del archivo .travis.yml y haz push a tu repositorio de GitHub.
  2. Verificar en Travis CI:

    • Asegúrate de que Travis CI ejecute la build y las pruebas correctamente.

Solución del Ejercicio

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

Conclusión

Travis CI es una herramienta poderosa y flexible para la integración continua. Su integración con GitHub y su configuración basada en archivos YAML lo hacen accesible y fácil de usar. Con Travis CI, puedes automatizar la construcción, prueba y despliegue de tu código, mejorando la eficiencia y la calidad de tu desarrollo de software.

En el siguiente módulo, exploraremos otra herramienta popular de CI/CD: Docker y Kubernetes.

© Copyright 2024. Todos los derechos reservados