Configura CI/CD para tu aplicación .NET
Requisitos previos
Completa todas las secciones anteriores de esta guía, comenzando con Containerizar una aplicación .NET. 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 usar GitHub Actions para compilar y probar tu imagen de Docker, así como para subirla a Docker Hub. Completarás los siguientes pasos:
- Crea un nuevo repositorio en GitHub.
- Define el flujo de trabajo (workflow) de GitHub Actions.
- Ejecuta el flujo de trabajo.
Paso uno: Crear el repositorio
Crea un repositorio de GitHub, configura las credenciales de Docker Hub y sube tu código fuente.
Crea un nuevo repositorio en GitHub.
Abre la configuración (Settings) del repositorio y ve a Secrets and variables > Actions.
Crea una nueva variable de repositorio (Repository variable) llamada
DOCKER_USERNAMEcon tu ID de Docker como valor.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 Lectura y Escritura (Read and Write).Agrega el PAT como un secreto de repositorio (Repository secret) en tu repositorio de GitHub, con el nombre
DOCKERHUB_TOKEN.En tu repositorio local en tu máquina, ejecuta el siguiente comando para cambiar la dirección de origen (origin) al repositorio que acabas de crear. Asegúrate de cambiar
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.gitEn tu repositorio local en tu máquina, ejecuta el siguiente comando para cambiar el nombre de la rama a main.
$ git branch -M mainEjecuta los siguientes comandos para preparar (stage), confirmar (commit) y luego subir (push) tu repositorio local a GitHub.
$ git add -A $ git commit -m "my first commit" $ git push -u origin main
Paso dos: Configurar el flujo de trabajo
Configura tu flujo de trabajo de GitHub Actions para compilar, probar y subir la imagen a Docker Hub.
Ve a tu repositorio en GitHub y luego selecciona la pestaña Actions.
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.ymlde forma predeterminada.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 probar uses: docker/build-push-action@v7 with: target: build load: true - name: Compilar y subir uses: docker/build-push-action@v7 with: platforms: linux/amd64,linux/arm64 push: true target: final tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latestPara obtener más información sobre la sintaxis YAML para
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 la tarea (job).
Selecciona Commit changes... (Confirmar cambios...) y sube los cambios a la rama
main.Después de subir la confirmación, el flujo de trabajo se inicia automáticamente.
Ve a la pestaña Actions. Verás el flujo de trabajo.
Al seleccionar el flujo de trabajo, se te mostrará el desglose de todos los pasos.
Cuando el flujo de trabajo se haya completado, ve a tus repositorios en Docker Hub.
Si ves el nuevo repositorio en esa lista, significa que 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.
Información relacionada:
- Introducción a GitHub Actions
- GitHub Actions para Docker Build
- Sintaxis de flujo de trabajo para GitHub Actions
Próximos pasos
A continuación, aprende cómo puedes probar y depurar localmente tus cargas de trabajo en Kubernetes antes de desplegar.