Outils

GitHub Actions : Comprendre les bases de l'automatisation

Marre des tâches répétitives ? Plongez dans les concepts fondamentaux de GitHub Actions pour automatiser vos tests et vos déploiements.

L’intégration continue (CI/CD) semble parfois complexe, réservée aux experts DevOps. Pourtant, GitHub a démocratisé cette pratique grâce à GitHub Actions. Cet outil directement intégré à vos dépôts permet d’automatiser des tâches en réaction à des événements (comme la création d’une Pull Request ou un push sur main).

Si vous souhaitez automatiser vos tests, formater votre code ou déployer vos applications sans effort, voici les concepts clés pour bien démarrer.


L’anatomie d’un Workflow GitHub Actions

Pour comprendre GitHub Actions, il suffit de maîtriser quatre concepts fondamentaux qui s’emboîtent les uns dans les autres :

1. Le Workflow (Le scénario)

Un workflow est une procédure automatisée globale que vous ajoutez à votre dépôt. Il est décrit dans un fichier au format YAML et doit obligatoirement être placé dans le dossier .github/workflows/. Vous pouvez avoir plusieurs workflows dans un même projet (un pour les tests, un pour le déploiement, etc.).

2. Le Trigger / Event (Le déclencheur)

C’est l’événement qui va donner le top départ à votre workflow. Par exemple :

  • Un push sur la branche principale.
  • L’ouverture d’une pull_request.
  • Un horaire précis (via un cron).

3. Les Jobs (Les étapes majeures)

Un workflow est composé d’un ou plusieurs jobs. Par défaut, si vous avez plusieurs jobs, ils s’exécutent en parallèle. Chaque job s’exécute sur sa propre machine virtuelle (appelée un Runner), comme une instance Ubuntu, Windows ou macOS fournie par GitHub.

4. Les Steps et Actions (Les micro-tâches)

À l’intérieur d’un job, on trouve une suite séquentielle de steps (étapes). Une étape peut être une simple commande de terminal (ex: npm run test) ou une Action prête à l’emploi issue de la communauté (ex: une action pour se connecter à un serveur ou envoyer un message Slack).


Votre premier exemple pratique

Voici à quoi ressemble un fichier concret. Créez un fichier .github/workflows/ci.yml et copiez-y ce code :

# Le nom de votre scénario
name: Vérification du Code

# Le déclencheur : à chaque fois qu'on pousse du code sur main
on:
  push:
    branches: [main]

# Ce que le scénario doit faire
jobs:
  test-application:
    # La machine virtuelle qui va exécuter le travail
    runs-on: ubuntu-latest

    # La liste des étapes à suivre
    steps:
      # Étape 1 : Récupérer le code du dépôt sur la VM
      - name: Récupération du code
        uses: actions/checkout@v4

      # Étape 2 : Installer Node.js sur la VM
      - name: Installation de Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      # Étape 3 : Installer les dépendances et lancer les tests
      - name: Exécution des tests
        run: |
          npm ci
          npm run test