Skip to content

Cómo Construir Tu Primer Pipeline CI/CD Usando GitHub Actions

Si estás buscando sumergirte en el mundo de CI/CD (es decir, Integración Continua/Despliegue Continuo para quienes no dominan la jerga), has llegado al lugar correcto. Hoy crearemos tu primer pipeline CI/CD usando GitHub Actions—para automatizar las pruebas en un script de Python muy simple. No te preocupes; vamos despacio, con un enfoque ligero y explicaciones sencillas.

¿Qué Necesitas Antes de Comenzar?

  • Una cuenta de GitHub. (Si aún no tienes una, en serio, ve y créala—es gratis y te da acceso a un montón de cosas geniales).
  • Tu entorno WSL (Windows Subsystem for Linux) Ubuntu confiable.
  • Un script de Python. Cualquier script de Python. Incluso si es solo print('Hello, world!'). Hoy lo mantenemos simple.

Paso 1: Crea Tu Repositorio

Empecemos creando un repositorio de GitHub.

  1. Inicia sesión en GitHub y haz clic en el botón “New” en la sección de Repositorios.
  2. Ponle un nombre chevere a tu repositorio, como ci-cd-python-pipeline. Puedes hacerlo público o privado; depende de ti. No olvides marcar la casilla que dice “Add a README file”, eso facilita las cosas.
  3. Haz clic en “Create repository”. ¡Bam! Ahora tienes un hogar para tu futura obra maestra de CI/CD.

Paso 2: Agrega Tu Script de Python

Es hora de darle algo de poder de Python.

  1. En tu nuevo repositorio, haz clic en el botón ‘Add file’, luego selecciona ‘Create new file’.
  2. Nombra tu archivo algo como hello.py (un clásico).
  3. Pega tu código Python, por ejemplo:
def my_function():
    return "¡Hola, este es mi primer CI/CD!"

if __name__ == "__main__":
    print(my_function())
  1. Haz commit de tu nuevo archivo en la rama main haciendo clic en “Commit Changes…”. Aparecerá una ventana emergente que te pedirá ingresar un mensaje de commit—solo agrega una breve descripción como ‘Add hello.py’. ¡Felicidades! Ahora eres oficialmente dueño de un script de Python.

Paso 3: Vamos a Ponernos en Acción con GitHub Actions

¡Ahora viene la parte divertida—configurar GitHub Actions para un poco de magia de automatización!

  1. Haz clic en la pestaña Actions en tu repositorio. GitHub te sugerirá algunas plantillas, ¡pero vamos a crear la nuestra!
  1. Haz clic en Set up a workflow yourself.
  2. Nombra tu archivo de workflow .github/workflows/python-ci.yml. La ruta es importante, así que asegúrate de que sea exactamente así.

Paso 4: Escribe el Workflow

Es hora de decirle a GitHub qué hacer. No te preocupes, GitHub escucha bien.

Aquí está el código que pegarás para crear un workflow que se ejecutará cada vez que subas código a tu repositorio:

name: Python CI Pipeline

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.x'

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

    - name: Run Python script
      run: |
        python hello.py

¿Qué Está Pasando Aquí?

  • name: Llamamos a nuestro workflow Python CI Pipeline. Siéntete libre de ser creativo aquí, como Deploy-o-Tron 3000.
  • on: Este workflow se activará cada vez que subas algo a la rama main o crees un pull request hacia ella.
  • jobs: Definimos el trabajo llamado build.
  • runs-on: Este trabajo se ejecutará en ubuntu-latest, que básicamente es una máquina virtual que GitHub nos presta amablemente.
  • steps: Estos son los comandos individuales que ejecutaremos.
    • Primero, extraemos el código (para que GitHub sepa con qué archivos trabajar).
    • Luego configuramos Python.
    • Después, instalamos las dependencias (si es que se necesitan—por ahora, no las hay).
    • Por último, ejecutamos el script para asegurarnos de que funcion.

Paso 5: Haz Push de Tus Cambios y Mira la Magia

  1. Guarda el archivo de workflow haciendo clic en Commit changes…. Después de hacer clic en este botón, aparecerá una ventana emergente que te pedirá ingresar un mensaje de commit—solo agrega una breve descripción como ‘Add CI workflow’.
  2. Si todo sale bien, verás un gran check verde en la pestaña Actions indicando que tu workflow se ejecutó correctamente. Si hay algún problema, es posible que veas una cruz roja, lo que significa que algo necesita ser arreglado.

Paso 6: Haz un Cambio y Pruébalo

CI/CD no se trata solo de ejecutar tu script una vez; se trata de automatizar pruebas cada vez que cambias el código.

  1. Edita tu script hello.py—tal vez cambia el mensaje a Hello, GitHub Actions!.
  2. Haz commit del cambio.
  3. Tu workflow se ejecutará automáticamente de nuevo. Fácil, ¿verdad?

Paso Extra: Agrega Algunas Pruebas

Si quieres ir un paso más allá, ¡agrega una prueba! Crea un nuevo archivo llamado test_hello.py e incluye el siguiente código:

import pytest
from hello import my_function

def test_my_function():
    assert my_function() == "Hello, GitHub Actions!"

Actualiza tu archivo .github/workflows/python-ci.yml :

  1. Primero, agrega pip install pytest en el paso ‘Install dependencies’, para que se vea así:
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pytest
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
  1. Luego, agrega la prueba después de «Run Python script»:
    - name: Run Python script
      run: |
        python hello.py
        
    - name: Run tests
      run: |
        pytest

Conclusión

¡Y ahí lo tienes! Acabas de configurar un pipeline básico de CI/CD que ejecuta tu script de Python cada vez que realizas un cambio. Este ejemplo solo cubre la parte de CI, pero exploraremos la parte de CD en una publicación futura. Puede ser simple ahora, pero las habilidades que aprendas aquí serán la base para una automatización más compleja en el futuro.

Published inData Engineering