Compartir comentarios
Las respuestas se generan en base a la documentación.

Configura CI/CD para tu aplicación Rust

Prerrequisitos

Completa las secciones anteriores de esta guía, comenzando con Desarrolla tu aplicación Rust. Debes tener una cuenta de GitHub y una cuenta verificada de Docker para completar esta sección.

Resumen

En esta sección, aprenderás cómo configurar y utilizar GitHub Actions para compilar y enviar (push) tu imagen Docker a Docker Hub. Completarás los siguientes pasos:

  1. Crea un nuevo repositorio en GitHub.
  2. Define el flujo de trabajo (workflow) de GitHub Actions.
  3. Ejecuta el flujo de trabajo.

Paso uno: Crea el repositorio

Crea un repositorio en GitHub, configura las credenciales de Docker Hub y envía (push) tu código fuente.

  1. Crea un nuevo repositorio en GitHub.

  2. Abre la Configuración (Settings) del repositorio y ve a Secrets and variables > Actions.

  3. Crea una nueva variable de repositorio (Repository variable) llamada DOCKER_USERNAME y tu Docker ID como valor.

  4. Crea un nuevo Token de Acceso Personal (PAT) para Docker Hub. Puedes nombrar este token docker-tutorial. Asegúrate de que los permisos de acceso incluyan Read y Write.

  5. Agrega el PAT como un secreto de repositorio (Repository secret) en tu repositorio de GitHub, con el nombre DOCKERHUB_TOKEN.

  6. En tu repositorio local en tu máquina, ejecuta el siguiente comando para cambiar el origen al repositorio que acabas de crear. Asegúrate de cambiar your-username por tu nombre de usuario de GitHub y your-repository por el nombre del repositorio que creaste.

    $ git remote set-url origin https://github.com/your-username/your-repository.git
    
  7. Ejecuta los siguientes comandos para preparar (stage), confirmar (commit) y enviar (push) tu repositorio local a GitHub.

    $ git add -A
    $ git commit -m "my commit"
    $ git push -u origin main
    

Paso dos: Configura el flujo de trabajo

Configura tu flujo de trabajo de GitHub Actions para compilar, probar y enviar la imagen a Docker Hub.

  1. Ve a tu repositorio en GitHub y luego selecciona la pestaña Actions.

  2. Selecciona set up a workflow yourself (configurar un flujo de trabajo tú mismo).

    Esto te llevará a una página para crear un nuevo archivo de flujo de trabajo de GitHub Actions en tu repositorio, bajo .github/workflows/main.yml de forma predeterminada.

  3. En la ventana del editor, copia y pega la siguiente configuración YAML.

    name: ci
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        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: Compilar y enviar
            uses: docker/build-push-action@v7
            with:
              push: true
              tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    Para obtener más información sobre la sintaxis YAML para docker/build-push-action, consulta el README de GitHub Action.

Paso tres: Ejecuta el flujo de trabajo

Guarda el archivo del flujo de trabajo y ejecuta el trabajo.

  1. Selecciona Commit changes... y envía los cambios a la rama main.

    Tras enviar el commit, el flujo de trabajo se inicia automáticamente.

  2. Ve a la pestaña Actions. Allí se muestra el flujo de trabajo.

    Al seleccionar el flujo de trabajo se muestra el desglose de todos los pasos.

  3. Cuando se complete el flujo de trabajo, ve a tus repositorios en Docker Hub.

    Si ves el nuevo repositorio en esa lista, significa que GitHub Actions envió con éxito 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 Rust.

Información relacionada:

Pasos siguientes

A continuación, aprende cómo puedes probar y depurar localmente tus cargas de trabajo en Kubernetes antes de realizar el despliegue.