Organisez vos workflows avec GitHub Actions

GitHub a sorti une nouvelle version en bêta de son service Actions. Publié pour la première fois en 2018, il est voué à l’organisation de workflows en liaison avec des événements.  Sa principale nouveauté est le support de l’intégration et du déploiement en continu (CI/CD). La version finalisée était attendue pour la mi-novembre 2019.

Intégration et déploiement en continu (CI/CD) avec GitHub Actions.

Les workflows sont constitués d’au moins un et d’éventuellement plusieurs jobs qui peuvent être planifiés ou activés par un événement. Une instance de votre workflow s’exécute lorsque tel ou tel événement préconfiguré se produit. Vous pouvez voir les jobs, actions, logs et status pour chaque exécution de workflow.

Les workflows : job, step, runner and co

Le fichier YAML définit la configuration de votre workflow avec au moins un job. Ce fichier se trouve à la racine de votre repository GitHub dans le répertoire .github/workflows. Un job est une tâche constituée d’étapes. Chaque job s’exécute dans une nouvelle instance de l’environnement virtuel. Vous pouvez établir les règles de dépendance définissant dans un fichier de workflow comment les jobs doivent s’exécuter.

Les jobs peuvent s’exécuter en parallèle ou être dépendants du statut d’un job précédent et s’exécuter de manière séquentielle – ou synchrone. Un workflow peut, par exemple, avoir deux jobs séquentiels qui compilent et testent le code, avec le job de test qui est dépendant du statut du job de compilation. Si le job de compilation échoue, celui de test n’a aucune raison de s’exécuter… puisqu’il n’y aura rien à tester. Un step –  ou une étape – est un ensemble de tâches exécutées par un job. Chaque étape d’un job s’exécute dans le même environnement virtuel, permettant aux actions de ce job de partager des informations via le système de fichiers associé. Ces steps peuvent exécuter aussi bien des commandes que des actions.

Un runner est un service GitHub en attente continuelle des jobs à exécuter dans chaque environnement virtuel. Lorsqu’un job s’exécute, il exécute les actions du dit job et reporte son avancée, ses logs et les résultats finaux à GitHub. Les runners n’exécutent qu’un seul job à la fois. Un événement est une activité spécifique qui déclenche l’exécution d’un workflow. L’activité peu, par exemple, avoir comme origine un commit vers un dépôt ou un résultat de build ou encore une pull request depuis GitHub. Vous pouvez également configurer un workflow à exécuter lorsqu’un événement externe se produit.