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 Ruby on Rails. Vous devez avoir un compte GitHub et un compte Docker pour terminer 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 distant et assurez-vous de pouvoir valider et pousser votre code sur GitHub.
-
Dans le dépôt GitHub de votre projet, ouvrez Paramètres, et allez dans Secrets et variables > Actions.
-
Sous l'onglet Variables, 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 autorisations d'accès incluent la lecture et l'écriture. -
Ajoutez le PAT comme 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 à configurer et à utiliser GitHub Actions pour construire votre image Docker ainsi qu'à 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 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. 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 existantes. L'action ci-dessus comporte trois étapes :
-
Se connecter à Docker Hub: L'action se connecte à Docker Hub en utilisant l'identifiant 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 de la CLI Docker.
-
Construire et pousser: L'action construit et pousse l'image Docker sur Docker Hub. Le paramètre
tags
spécifie le nom et le tag de l'image. 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 vers 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 réussi à pousser l'image sur Docker Hub.
Résumé
Dans cette section, vous avez appris à configurer un flux de travail GitHub Actions pour votre application Ruby on Rails.
Informations connexes :
- Introduction à GitHub Actions
- Actions GitHub de construction Docker
- Syntaxe des 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.