Configurar CI/CD para tu aplicación C++
Requisitos previos
Completa todas las secciones anteriores de esta guía, empezando por Containerizar una aplicación C++. Necesitas una cuenta de GitHub y una cuenta verificada de Docker para completar esta sección.
Descripción general
En esta sección aprenderás a configurar y usar GitHub Actions para compilar y probar tu imagen Docker, así como enviarla a Docker Hub. Completarás los siguientes pasos:
- Crear un repositorio en GitHub.
- Definir el flujo de trabajo de GitHub Actions.
- Ejecutar el flujo de trabajo.
Paso uno: Crear el repositorio
Crea un repositorio en GitHub, configura las credenciales de Docker Hub y envía tu código fuente.
Crea un repositorio en GitHub.
Abre Settings del repositorio y ve a Secrets and variables > Actions.
Crea una Repository variable llamada
DOCKER_USERNAMEcon tu ID de Docker como valor.Crea un token de acceso personal (PAT) para Docker Hub. Puedes llamarlo
docker-tutorial. Asegúrate de que los permisos incluyan Read y Write.Añade el PAT como Repository secret en tu repositorio de GitHub, con el nombre
DOCKERHUB_TOKEN.En tu repositorio local, ejecuta el siguiente comando para cambiar el origin al repositorio que acabas de crear. Cambia
your-usernamepor tu nombre de usuario de GitHub yyour-repositorypor el nombre del repositorio que creaste.$ git remote set-url origin https://github.com/your-username/your-repository.gitEjecuta los siguientes comandos para preparar, hacer commit y push de tu repositorio local a GitHub.
$ git add -A $ git commit -m "my commit" $ git push -u origin main
Paso dos: Configurar el flujo de trabajo
Configura tu flujo de GitHub Actions para compilar, probar y enviar la imagen a Docker Hub.
Ve a tu repositorio en GitHub y selecciona la pestaña Actions.
Selecciona set up a workflow yourself.
Te llevará a una página para crear un archivo de flujo de GitHub Actions en tu repositorio, por defecto en
.github/workflows/main.yml.En el editor, copia y pega la siguiente configuración YAML y confirma los cambios.
name: ci on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Login to Docker Hub uses: docker/login-action@v4 with: username: ${{ vars.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 - name: Build and push uses: docker/build-push-action@v7 with: platforms: linux/amd64,linux/arm64 push: true tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latestPara más información sobre la sintaxis YAML de
docker/build-push-action, consulta el README de la GitHub Action.
Paso tres: Ejecutar el flujo de trabajo
Guarda el archivo de flujo de trabajo y ejecuta el job.
Selecciona Commit changes... y envía los cambios a la rama
main.Tras el push, el flujo de trabajo se inicia automáticamente.
Ve a la pestaña Actions. Muestra el flujo de trabajo.
Al seleccionarlo verás el desglose de todos los pasos.
Cuando el flujo termine, ve a tus repositorios en Docker Hub.
Si ves el repositorio nuevo en la lista, GitHub Actions envió la imagen correctamente a Docker Hub.
Resumen
En esta sección aprendiste a configurar un flujo de GitHub Actions para tu aplicación C++.
Información relacionada:
- Introducción a GitHub Actions
- Docker Build GitHub Actions
- Sintaxis de flujos de trabajo para GitHub Actions
Próximos pasos
A continuación aprenderás a probar y depurar en local tus cargas de trabajo en Kubernetes antes de desplegar.