Explorer la livraison continue avec GitHub Actions

Effectué

GitHub Actions fournit le mécanisme permettant d’implémenter des workflows de livraison de logiciels à l’aide des fonctionnalités de la plateforme GitHub. Il s’agirait de l’approche CI/CD la plus optimale pour l’organisation dans notre exemple de scénario, compte tenu de ses plans d’utilisation de GitHub pour son parcours DevOps. Dans cette unité, vous allez découvrir comment utiliser GitHub Actions pour générer et exécuter des flux de travail CI/CD.

Qu’est-ce que GitHub Actions ?



Dans le contexte de GitHub, le terme actions a réellement une double signification. Le premier (Actions avec une majuscule) représente le service GitHub, qui a fourni la possibilité d’implémenter des workflows CI/CD. La deuxième ( actions minuscules) désigne des unités réutilisables qui peuvent être incluses dans les flux de travail pour fournir une fonctionnalité spécifique, comme l’exécution de scripts et d’exécutables, la génération et le chargement d’artefacts, ou la configuration de l’accès à un abonnement Azure.

Diagramme de la livraison continue avec GitHub Actions.

Quels sont les principaux composants de GitHub Actions ?

Les principaux composants de GitHub Actions sont les suivants :

  • workflow : séquence d’étapes stockées dans un fichier au format YAML. Les flux de travail exécutent les étapes une fois qu’elles sont déclenchées manuellement ou (plus fréquemment) automatiquement par des activités liées au référentiel, telles que des envois (push) ou des fusions de branche.
  • travail : élément supérieur d’un flux de travail. Les travaux au sein d’un flux de travail peuvent s’exécuter en parallèle ou séquentiellement.
  • étape : élément supérieur au sein d’un travail. Chaque étape est une tâche ou une action qui effectue une activité spécifique, telle que l’exécution d’un script ou la génération d’un artefact.
  • action : une activité pré-construite ou développée sur mesure (comme mentionné précédemment). GitHub fournit une place de marché où vous pouvez trouver un large éventail d’actions prédéfinies.
  • variable : valeur nommée qui vous permet de stocker et réutiliser des données dans les étapes d’un flux de travail. Vous pouvez créer vos propres variables personnalisées ou utiliser l’une des variables d’environnement prédéfinies par défaut définies automatiquement dans chaque flux de travail.
  • secret : variable chiffrée qui peut être utilisée pour stocker des données sensibles.

Comment créer un workflow GitHub Actions ?

Pour créer un flux de travail GitHub Actions, procédez comme suit :

  1. Créez un référentiel. Pour implémenter un workflow GitHub Actions, vous aurez besoin d’un compte GitHub et d’un dépôt. Par défaut, un nouveau référentiel inclut la branche par défaut, généralement nommée main.
  2. Créez un répertoire .github/workflows. Les flux de travail GitHub Actions doivent résider dans le répertoire .github/workflows dans la racine du dépôt.
  3. Créez un fichier YAML. Le flux de travail GitHub Actions a le format YAML. Son nom est arbitraire, mais l’extension doit être définie sur .yml.
  4. Définissez le flux de travail dans le fichier YAML et enregistrez les modifications. Le fichier YAML doit inclure la définition du flux de travail.
  5. Validez le fichier enregistré dans le référentiel. Pour finaliser les modifications du flux de travail, vous devez exécuter la validation, comme avec tout fichier qui fait partie du référentiel. Si vous décidez de créer un flux de travail sur votre ordinateur local (plutôt qu’à l’aide de l’interface web GitHub), vous clonez le référentiel une fois que vous l’avez créé, appliquez et validez les modifications localement, puis envoyez-les à GitHub.

Voici un exemple simple de flux de travail GitHub Actions qui affiche un message Hello à partir de GitHub Actions ! une fois exécuté.

name: Simple GitHub Actions workflow

on: [push]

jobs:
  say_hello:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Repository
      uses: actions/checkout@v2

    - name: Run Build Script
      run: |
        echo "Hello, GitHub Actions!"

La première ligne du flux de travail définit son nom, qui s’affiche sous l’onglet Actions du référentiel dans l’interface web GitHub. La on: [push] ligne désigne l’événement, qui déclenche l’exécution du flux de travail (dans ce cas, une transmission (push) vers n’importe quelle branche dans le référentiel du flux de travail).

Le flux de travail se compose d’un travail unique nommé say_hello, comme indiqué par le contenu suivant la jobs: ligne. La ligne suivante (runs-on: ubuntu-latest) détermine le type de système d’exploitation qui doit être utilisé pour exécuter le travail. Le choix dépend des tâches que le travail contient et, dans ce cas, le travail s’exécuterait également sur n’importe quel système d’exploitation Windows.

Le travail se compose de deux étapes, comme indiqué par le contenu suivant la steps: ligne. La syntaxe de l’étape prend en charge un attribut de nom facultatif, qui peut vous aider à comprendre l’objectif de l’étape lors de l’examen des exécutions du flux de travail. Le reste de la syntaxe dépend du type d’action qu’une étape donnée est destinée à effectuer. Dans cet exemple, la première étape consiste à extraire le référentiel actuel (qui télécharge le contenu du référentiel sur le système où le travail est en cours d’exécution), tandis que la deuxième exécute la commande echo , qui affiche un message convivial.

Pour intégrer la fonctionnalité CI/CD dans les flux de travail GitHub Actions, vous devez ajouter une série d’étapes (dans un ou plusieurs travaux) qui effectuent des actions de génération, de test et de déploiement automatisées. Une fois l’exécution du flux de travail déclenchée, vous pouvez suivre sa progression en accédant à l’onglet « Actions » dans votre dépôt GitHub.

Remarque

Vous aurez la chance de travailler avec des exemples plus significatifs de flux de travail GitHub Actions qui illustrent l’intégration CI/CD dans le labo de ce module.