Github-Actions-1 Présentation 👨‍🏫

Objectifs:
🎯 Créer des pipelines directement dans son repo github.

Prérequis:
💡 [ Avoir un compte github ].
💡 [ Visual Studio Code installé ].
💡 [ Git installé ].


logo de github, outil devops de versionning et d'automatisation du cycle de vie de code source.

Dans le monde devops nous avons beaucoup de solutions pour créer des pipelines, permettant l'automatisation du cycle de création et de déploiement de nos applications. Nous pouvons par exemple parler de jenkins et pulumi qui sont 2 outils devops permettant la création de pipeline et que j'ai du utiliser lors de missions précédentes.

Ces outils sont toujours aussi intéressants, cependant github à mis en place les github actions pour créer des pipelines directement dans son repo github. Ce qui est selon moi un avantage car cela permet de se décharger de l'installation, la configuration, le déploiement et la maintenance d'un outil tiers (ex: jenkins) pour l'orchestration de l'automatisation de sa CI/CD.

Le principe est le suivant, nous allons créer des manifests en yml pour déclarer nos pipelines. Un évènement github sera le déclencheur et pour chaque job (ensemble de tâches) déclaré dans le pipeline, un runner SAAS github (ubuntu, macos, windows) sera crée pour exécuter ces jobs.

Schéma du lien entre les runner et les jobs dans les pipelines github actions de l'outil devops github. La fonctionnalité github actions est accéssible dans l'interface de votre repo à l'aide du bouton 'Actions'

Schéma d'une répartition possible de la création du code source d'un jeu vidéo. Je vous propose de parcourir quelques définitons avant de passer à la création de nos premiers pipelines avec github actions.

Workflow: 📑
Un workflow est l'équivalent d'un pipeline.
Il est déclaré dans un manifest.yml qui contient un ou des jobs à exécuter en fonction d'un évènement github.

Job: 📋
Un job est un ensemble de tâches à effectuer.
Un job s'exécute sur un runner.

Github events: 🔔
Les évènements sont les fonctionnalités git utilisées lors du cycle de vie d'un repo.
Un commit, une demande de pull-request sont des évènements github.
Ces derniers seront utilisés pour déclencher nos pipelines/workflows.

Runner: 💻
Machine physique/virtuelle sur laquelle s'exécutent les jobs.
Par défaut c'est un service SAAS, nos jobs sont donc exécutés sur des machines githubs (ubuntu, macos, windows). nous verrons par la suite comment les exécuter sur vos propres machines.


Conclusion:
Le principal avantage que je vois à github actions est le fait de ne pas avoir à utiliser un outils tiers pour gérer le cycle de vie du code source. De plus il est possible d'utiliser les évènements natifs de GitHub pour déclencher ses pipelines.

Maintenant que nous avons en tête la définition des éléments de base, je vous invite à me rejoindre dans la rubrique suivante [ Github-2: Création de pipelines ] afin que l'on crée ensemble différents pipelines.