Automatizar tus construcciones con GitHub Actions
Requisitos previos
Completa todas las secciones anteriores de esta guía, comenzando con Contenedorizar una aplicación Python. Debes tener una cuenta de GitHub y una cuenta verificada de Docker para completar esta sección.
Si aún no has creado un repositorio de GitHub para tu proyecto, es el momento de hacerlo. Después de crear el repositorio, no olvides agregar un origen remoto y asegurarte de que puedes confirmar y subir tu código a GitHub.
En el repositorio de GitHub de tu proyecto, abre Settings (Configuración) y ve a Secrets and variables > Actions.
En la pestaña Variables, crea una nueva Repository variable llamada
DOCKER_USERNAMEcon tu Docker ID como valor.Crea un nuevo Token de Acceso Personal (PAT) para Docker Hub. Puedes nombrar este token como
docker-tutorial. Asegúrate de que los permisos de acceso incluyan Read and Write (Lectura y Escritura).Agrega el PAT como un Repository secret en tu repositorio de GitHub, con el nombre
DOCKERHUB_TOKEN.
Descripción general
GitHub Actions es una herramienta de automatización de CI/CD (Integración Continua y Despliegue Continuo) integrada en GitHub. Te permite definir flujos de trabajo (workflows) personalizados para construir, probar y desplegar tu código cuando ocurren eventos específicos (por ejemplo, subir código, crear una solicitud de extracción o pull request, etc.). Un flujo de trabajo es un script de automatización basado en YAML que define una secuencia de pasos a ejecutar cuando se activa. Los flujos de trabajo se almacenan en el directorio .github/workflows/ de un repositorio.
En esta sección, aprenderás cómo configurar y usar GitHub Actions para construir tu imagen de Docker, así como para subirla a Docker Hub. Completarás los siguientes pasos:
- Definir el flujo de trabajo de GitHub Actions.
- Ejecutar el flujo de trabajo.
1. Definir el flujo de trabajo de GitHub Actions
Puedes crear un flujo de trabajo de GitHub Actions creando un archivo YAML en el directorio .github/workflows/ de tu repositorio. Para hacer esto, usa tu editor de texto favorito o la interfaz web de GitHub. Los siguientes pasos muestran cómo crear un archivo de flujo de trabajo utilizando la interfaz web de GitHub.
Si prefieres usar la interfaz web de GitHub, sigue estos pasos:
Ve a tu repositorio en GitHub y selecciona la pestaña Actions.
Selecciona set up a workflow yourself (configurar un flujo de trabajo por ti mismo).
Esto te llevará a una página para crear un nuevo archivo de flujo de trabajo de GitHub Actions en tu repositorio. Por defecto, el archivo se crea bajo
.github/workflows/main.yml. Cambiemos su nombre abuild.yml.
Si prefieres usar tu editor de texto, crea un nuevo archivo llamado build.yml en el directorio .github/workflows/ de tu repositorio.
Agrega el siguiente contenido al archivo:
name: Build and push Docker image
on:
push:
branches:
- main
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Configurar Python
uses: actions/setup-python@v6
with:
python-version: '3.14'
- name: Instalar dependencias
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Ejecutar hooks de pre-commit
run: pre-commit run --all-files
- name: Ejecutar pyright
run: pyright
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Iniciar sesión en Docker Hub
uses: docker/login-action@v4
with:
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Configurar Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Construir y subir
uses: docker/build-push-action@v7
with:
push: true
tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latestCada flujo de trabajo de GitHub Actions incluye uno o varios trabajos (jobs). Cada trabajo consta de pasos (steps). Cada paso puede ejecutar un conjunto de comandos o usar acciones ya existentes. La acción anterior tiene tres pasos principales de construcción:
Iniciar sesión en Docker Hub: La acción inicia sesión en Docker Hub utilizando el Docker ID y el Token de Acceso Personal (PAT) que creaste anteriormente.
Configurar Docker Buildx: La acción configura Docker Buildx, un complemento de CLI que amplía las capacidades de la CLI de Docker.
Construir y subir: La acción construye y sube la imagen de Docker a Docker Hub. El parámetro
tagsespecifica el nombre y la etiqueta de la imagen. En este ejemplo se utiliza la etiquetalatest.
2. Ejecutar el flujo de trabajo
Confirma los cambios y súbelos a la rama main. Este flujo de trabajo se ejecuta cada vez que subes cambios a la rama main. Puedes encontrar más información sobre los activadores de flujo de trabajo en la documentación de GitHub.
Ve a la pestaña Actions de tu repositorio de GitHub. Mostrará el flujo de trabajo. Al seleccionar el flujo de trabajo se muestra el desglose de todos los pasos.
Cuando el flujo de trabajo se complete, ve a tus repositorios en Docker Hub. Si ves el nuevo repositorio en esa lista, significa que el flujo de trabajo de GitHub Actions subió correctamente la imagen a Docker Hub.
Resumen
En esta sección, aprendiste cómo configurar un flujo de trabajo de GitHub Actions para tu aplicación Python que incluye:
- Ejecución de hooks de pre-commit para linting y formateo
- Comprobación de tipo estático con Pyright
- Construcción y subida de imágenes de Docker
Información relacionada:
- Introducción a GitHub Actions
- Acciones de GitHub para Docker Build
- Sintaxis de flujo de trabajo para GitHub Actions
Pasos siguientes
En la siguiente sección, aprenderás cómo puedes desarrollar localmente usando Kubernetes.