Configurer CI/CD pour votre application .NET
Prérequis
Terminez toutes les sections précédentes de ce guide, en commençant par Conteneuriser une application .NET. Vous devez avoir un compte GitHub et un compte Docker pour terminer cette section.
Aperçu
Dans cette section, vous apprendrez à configurer et utiliser GitHub Actions pour construire et tester votre image Docker ainsi que pour la pousser sur Docker Hub. Vous réaliserez les étapes suivantes :
- Créer un nouveau dépôt sur GitHub.
- Définir le flux de travail GitHub Actions.
- Exécuter le flux de travail.
Première étape : Créer le dépôt
Créez un dépôt GitHub, configurez les informations d'identification de Docker Hub et poussez votre code source.
-
Créez un nouveau dépôt sur GitHub.
-
Ouvrez les Paramètres du dépôt, et allez dans Secrets et variables > Actions.
-
Créez une nouvelle variable de dépôt nommée
DOCKER_USERNAME
avec votre identifiant Docker comme valeur. -
Créez un nouveau Jeton d'accès personnel (PAT) pour Docker Hub. Vous pouvez nommer ce jeton
docker-tutorial
. Assurez-vous que les permissions d'accès incluent Lecture et Écriture. -
Ajoutez le PAT en tant que Secret de dépôt dans votre dépôt GitHub, avec le nom
DOCKERHUB_TOKEN
. -
Dans votre dépôt local sur votre machine, exécutez la commande suivante pour changer l'origine vers le dépôt que vous venez de créer. Assurez-vous de changer
votre-nom-d-utilisateur
par votre nom d'utilisateur GitHub etvotre-depot
par le nom du dépôt que vous avez créé.$ git remote set-url origin https://github.com/votre-nom-d-utilisateur/votre-depot.git
-
Dans votre dépôt local sur votre machine, exécutez la commande suivante pour renommer la branche en main.
$ git branch -M main
-
Exécutez les commandes suivantes pour mettre en attente, commiter, puis pousser votre dépôt local vers GitHub.
$ git add -A $ git commit -m "mon premier commit" $ git push -u origin main
Deuxième étape : Configurer le flux de travail
Configurez votre flux de travail GitHub Actions pour construire, tester et pousser l'image vers Docker Hub.
-
Allez sur votre dépôt sur GitHub puis sélectionnez l'onglet Actions.
-
Sélectionnez Configurer un flux de travail vous-même.
Cela vous amène à une page pour créer un nouveau fichier de flux de travail GitHub actions dans votre dépôt, sous
.github/workflows/main.yml
par défaut. -
Dans la fenêtre de l'éditeur, copiez et collez la configuration YAML suivante.
name: ci on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ vars.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and test uses: docker/build-push-action@v6 with: target: build load: true - name: Build and push uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm64 push: true target: final tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest
Pour plus d'informations sur la syntaxe YAML pour
docker/build-push-action
, référez-vous au README de l'Action GitHub.
Troisième étape : Exécuter le flux de travail
Sauvegardez le fichier de flux de travail et exécutez la tâche.
-
Sélectionnez Valider les changements... et poussez les changements vers la branche
main
.Après avoir poussé le commit, le flux de travail démarre automatiquement.
-
Allez dans l'onglet Actions. Il affiche le flux de travail.
La sélection du flux de travail vous montre le détail de toutes les étapes.
-
Quand le flux de travail est terminé, allez dans vos dépôts sur Docker Hub.
Si vous voyez le nouveau dépôt dans cette liste, cela signifie que les Actions GitHub ont poussé avec succès l'image sur Docker Hub.
Résumé
Dans cette section, vous avez appris à configurer un flux de travail GitHub Actions pour votre application.
Informations connexes :
- Introduction à GitHub Actions
- Docker Build GitHub Actions
- Syntaxe du flux de travail pour GitHub Actions
Prochaines étapes
Ensuite, apprenez comment vous pouvez tester et déboguer localement vos charges de travail sur Kubernetes avant de les déployer.