Automatisez vos constructions avec GitHub Actions
Prérequis
Terminez toutes les sections précédentes de ce guide, en commençant par Conteneuriser une application Python. Vous devez avoir un compte GitHub et un compte Docker pour compléter cette section.
Si vous n'avez pas encore créé de dépôt GitHub pour votre projet, il est temps de le faire. Après avoir créé le dépôt, n'oubliez pas d'ajouter un remote et assurez-vous de pouvoir valider et pousser votre code sur GitHub.
-
Dans le dépôt GitHub de votre projet, ouvrez Settings, et allez à Secrets and variables > Actions.
-
Sous l'onglet Variables, créez une nouvelle variable de dépôt nommée
DOCKER_USERNAME
avec votre ID 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 comme un secret de dépôt dans votre dépôt GitHub, avec le nom
DOCKERHUB_TOKEN
.
Aperçu
GitHub Actions est un outil d'automatisation CI/CD (Intégration Continue et Déploiement Continu) intégré à GitHub. Il vous permet de définir des flux de travail personnalisés pour construire, tester et déployer votre code lorsque des événements spécifiques se produisent (par exemple, pousser du code, créer une demande de tirage, etc.). Un flux de travail est un script d'automatisation basé sur YAML qui définit une séquence d'étapes à exécuter lorsqu'il est déclenché. Les flux de travail sont stockés dans le répertoire .github/workflows/
d'un dépôt.
Dans cette section, vous apprendrez comment configurer et utiliser GitHub Actions pour construire votre image Docker ainsi que pour la pousser sur Docker Hub. Vous réaliserez les étapes suivantes :
- Définir le flux de travail GitHub Actions.
- Exécuter le flux de travail.
1. Définir le flux de travail GitHub Actions
Vous pouvez créer un flux de travail GitHub Actions en créant un fichier YAML dans le répertoire .github/workflows/
de votre dépôt. Pour ce faire, utilisez votre éditeur de texte préféré ou l'interface web de GitHub. Les étapes suivantes vous montrent comment créer un fichier de flux de travail en utilisant l'interface web de GitHub.
Si vous préférez utiliser l'interface web de GitHub, suivez ces étapes :
-
Allez à votre dépôt sur GitHub, puis sélectionnez l'onglet Actions.
-
Sélectionnez set up a workflow yourself.
Cela vous amène à une page pour créer un nouveau fichier de flux de travail GitHub Actions dans votre dépôt. Par défaut, le fichier est créé sous
.github/workflows/main.yml
, changeons son nom enbuild.yml
.
Si vous préférez utiliser votre éditeur de texte, créez un nouveau fichier nommé build.yml
dans le répertoire .github/workflows/
de votre dépôt.
Ajoutez le contenu suivant au fichier :
name: Construire et pousser l'image Docker
on:
push:
branches:
- main
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Se connecter à Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Configurer Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Construire et pousser
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest
Chaque flux de travail GitHub Actions comprend un ou plusieurs jobs. Chaque job se compose d'étapes. Chaque étape peut soit exécuter un ensemble de commandes, soit utiliser des actions déjà existantes. L'action ci-dessus comporte trois étapes :
-
Se connecter à Docker Hub : L'action se connecte à Docker Hub en utilisant l'ID Docker et le Jeton d'Accès Personnel (PAT) que vous avez créés précédemment.
-
Configurer Docker Buildx : L'action configure Docker Buildx, un plugin CLI qui étend les capacités du CLI Docker.
-
Construire et pousser : L'action construit et pousse l'image Docker sur Docker Hub. Le paramètre
tags
spécifie le nom de l'image et le tag. Le taglatest
est utilisé dans cet exemple.
2. Exécuter le flux de travail
Validons les changements, poussons-les vers la branche main
. Dans le flux de travail ci-dessus, le déclencheur est défini sur les événements push
sur la branche main
. Cela signifie que le flux de travail s'exécutera chaque fois que vous pousserez des changements sur la branche main
. Vous pouvez trouver plus d'informations sur les déclencheurs de flux de travail ici.
Allez dans l'onglet Actions de votre dépôt GitHub. Il affiche le flux de travail. La sélection du flux de travail vous montre le détail de toutes les étapes.
Lorsque 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 le flux de travail GitHub Actions a 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 Python.
Informations connexes :
- Introduction à GitHub Actions
- Actions GitHub de construction Docker
- Syntaxe du flux de travail pour GitHub Actions
Prochaines étapes
Dans la section suivante, vous apprendrez comment vous pouvez développer votre application en utilisant des conteneurs.