
GitHub Actions est un système d’automatisation des tâches entièrement intégré à GitHub. Il est sorti de la version bêta et a atteint la disponibilité générale en novembre 2019. Il a le potentiel pour de nombreuses applications, notamment
l’integration continue et le deploiement continue.
Concepts de base
Pour automatiser un ensemble de tâches , vous devez créer des workflows dans votre référentiel GitHub. GitHub recherche les fichiers YAML dans le répertoire .github/workflows.
Des événements tels que les validations, l’ouverture ou la fermeture de requêtes d’extraction ou les mises à jour du wiki du projet déclenchent le démarrage d’un workflow. Pour une liste complète des événements disponibles, reportez-vous à cette documentation .
Les workflows sont composés de tâches qui s’exécutent simultanément par défaut. Chaque tâche doit représenter une partie distincte de votre workflow. Par exemple, vous pouvez avoir une tâche pour exécuter vos tests, une autre pour publier votre logiciel et une troisième pour déployer dans votre environnement de production.
Vous pouvez configurer des tâches pour qu’elles dépendent de la réussite d’autres tâches dans le même workflow. Par exemple, l’échec des tests peut empêcher le déploiement en production.
Les tâches contiennent une liste d’ étapes , que GitHub exécute en séquence. Une étape peut être un ensemble de commandes shell ou une
action , qui est une étape prédéfinie et réutilisable implémentée soit dans
TypeScript , soit dans un container . Certaines actions sont fournies par l’équipe GitHub, tandis que la communauté open source en gère bien d’autres. La
place de marché GitHub conserve un catalogue d’actions open source connues.
Voici un exemple de workflow qui utilise l’action actions/checkout et exécute la commande docker build pour créer automatiquement une image de conteneur lorsque des modifications sont transmises à la branche principale :
name: Docker Image CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build the Docker image
run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)Si vous voulez en savoir plus sur la façon d’écrire des workflows, j’ecrirais des articles sur ce sujet.
Devez-vous utiliser GitHub Actions ?
La réponse est, comme toujours : cela dépend .
Si vous utilisez déjà GitHub pour héberger le code source de votre projet, la mise en route de GitHub Actions est simple . Le fait qu’il s’intègre parfaitement à l’ensemble de l’écosystème GitHub signifie que votre équipe peut redoubler d’efforts pour utiliser la plateforme comme une partie importante de votre processus de développement logiciel.
GitHub Actions est gratuit pour tous les projets open source , et les dépôts privés bénéficient jusqu’à 2000 minutes par mois avant d’être facturés. Pour les projets de plus petite taille, cela signifie pouvoir profiter pleinement de l’automatisation dès le début sans frais supplémentaires. Vous pouvez même utiliser le système gratuitement pour toujours si vous utilisez des exécuteurs auto-hébergés.
Même si le marché communautaire présente un potentiel immense, de nombreuses actions restent à mettre en place par des personnes comme vous et moi. Dans les grandes organisations, le développement d’actions personnalisées et leur partage entre les équipes peuvent réduire considérablement la quantité de travail nécessaire pour créer et maintenir des flux de travail entre les projets.
Cependant, une fonctionnalité qui me manque personnellement est la possibilité de déclencher manuellement des tâches spécifiques . Certaines équipes préfèrent que les déploiements en production nécessitent une intervention humaine , ne serait-ce qu’un clic. GitHub Actions ne fournit pas encore d’option intégrée pour cela.
Les développeurs peuvent adapter leur flux de travail de manière à ce que seuls les commits marqués aboutissent à des déploiements en production, par exemple. Bien que GitHub encourage les équipes à adopter la pratique courante du déploiement continu, certaines ne souhaitent peut-être pas encore franchir le pas.
Dans l’ensemble, je pense que GitHub Actions vaut la peine d’être essayé. C’est en fonction de vos besoins spécifiques que vous pourrez déterminer si ce système d’automatisation est le mieux adapté à votre équipe.
Conclusion
Pour vous aider à démarrer avec GitHub Actions, je mettrais en place des didaticiels pratique dans lequel vous pouvez créer un workflow GitHub actions qui génère, teste , publie et déploie automatiquement un microservice simple.

