Explorer GitHub Actions
GitHub Actions est une plateforme d’intégration et de livraison continues (CI/CD) qui vous permet d’automatiser vos pipelines de compilation, de test et de déploiement.
Elle vous permet de créer des workflows qui compilent, testent et déploient automatiquement votre code sur n’importe quelle plateforme. Explorons GitHub Actions et comment les développeurs les utilisent.
Composants de GitHub Actions
Vous pouvez exécuter un workflow GitHub Actions manuellement ou le configurer pour qu’il soit déclenché lorsqu’un événement se produit dans votre dépôt. Par exemple, une pull request peut déclencher un workflow qui effectue une vérification dans le cadre du processus de revue.
Un workflow contient les composants suivants :
- Workflows : Contiennent un ou plusieurs jobs qui peuvent s’exécuter en séquence ou en parallèle.
- Jobs : Contiennent une ou plusieurs étapes qui exécutent soit un script que vous définissez, soit une action. Les jobs s’exécutent dans leur propre machine virtuelle ou dans un conteneur.
- Steps (étapes) : Définissent les tâches spécifiques à effectuer pendant l’exécution du workflow. Chaque étape exécute un script shell ou une action réutilisable qui simplifie le workflow.
Workflows
Un workflow est un processus automatisé configurable qui exécute un ou plusieurs jobs. Les workflows sont définis dans un fichier YAML intégré au dépôt. Ils s’exécutent lorsqu’ils sont déclenchés par un événement, manuellement ou selon un calendrier défini.
Les workflows sont définis dans le répertoire .github/workflows
d’un dépôt. Un dépôt peut contenir plusieurs workflows, chacun pouvant effectuer un ensemble de tâches différent.
Par exemple :
- Un workflow pour compiler et tester les pull requests.
- Un workflow pour déployer l’application à chaque création de version.
- Un workflow pour ajouter une étiquette à chaque ouverture de nouvelle issue.
Événements
Un événement est une activité spécifique dans un dépôt qui déclenche l’exécution d’un workflow.
Par exemple :
- Une pull request créée.
- Une issue ouverte.
- Un commit poussé dans le dépôt.
Vous pouvez aussi déclencher un workflow selon un calendrier, via une API REST ou manuellement.
Jobs
Un job est un ensemble d’étapes dans un workflow, exécuté sur un runner. Chaque étape est soit un script shell, soit une action. Les étapes s’exécutent dans l’ordre et dépendent les unes des autres.
Puisqu’elles s’exécutent sur le même runner, vous pouvez partager des données entre les étapes.
Par exemple :
- Une étape qui compile l’application.
- Une étape qui teste l’application compilée.
Les jobs peuvent être configurés avec des dépendances entre eux. Par défaut, ils n’ont pas de dépendances et s’exécutent en parallèle.
Exemple :
- Plusieurs jobs de compilation pour différentes architectures s’exécutent en parallèle.
- Un job de packaging dépend de ces jobs et s’exécute une fois qu’ils sont terminés.
Actions
Une action est une application personnalisée pour GitHub Actions qui effectue une tâche complexe mais répétitive.
Elle permet de réduire le code répétitif dans vos fichiers de workflow.
Exemples :
- Cloner votre dépôt Git.
- Configurer l’environnement de compilation.
- Authentifier auprès d’un fournisseur cloud.
Vous pouvez créer vos propres actions ou en trouver dans le GitHub Marketplace.
Runners
Un runner est un serveur qui exécute vos workflows lorsqu’ils sont déclenchés. Chaque runner exécute un seul job à la fois.
GitHub fournit des runners pour :
- Ubuntu Linux
- Microsoft Windows
- macOS
Chaque exécution de workflow s’effectue dans une machine virtuelle fraîchement provisionnée.
GitHub propose aussi des runners plus puissants avec des configurations plus grandes.
Si vous avez besoin d’un système d’exploitation différent ou d’une configuration matérielle spécifique, vous pouvez héberger vos propres runners.