Skip to main content

Comprendre GitHub Actions

Apprenez les bases de GitHub Actions, y compris les concepts de base et la terminologie essentielle.

Vue d'ensemble

GitHub Actions est une plateforme d’intĂ©gration continue et livraison continue (CI/CD) qui vous permet d’automatiser votre pipeline de gĂ©nĂ©ration, de test et de dĂ©ploiement. Vous pouvez crĂ©er des workflows qui crĂ©ent et testent chaque demande de tirage (pull request) adressĂ©e Ă  votre dĂ©pĂŽt, ou dĂ©ployer des demandes de tirage fusionnĂ©es en production.

GitHub Actions dépasse DevOps simplement et vous permet d'exécuter des workflows lorsque d'autres événements se produisent dans votre dépÎt. Par exemple, vous pouvez exécuter un workflow pour ajouter automatiquement les étiquettes appropriées chaque fois que quelqu'un crée un problÚme dans votre dépÎt.

GitHub fournit des machines virtuelles Linux, Windows et macOS pour exécuter vos workflows, ou vous pouvez héberger vos propres exécuteurs auto-hébergés dans votre propre centre de données ou infrastructure cloud.

Composants de GitHub Actions

Vous pouvez configurer un workflow GitHub Actions à déclencher quand un événement se produit dans votre dépÎt, par exemple l'ouverture d'une demande de tirage (pull request) ou la création d'un problÚme. Votre workflow contient un ou plusieurs travaux qui peuvent s'exécuter dans un ordre séquentiel ou en parallÚle. Chaque travail s'exécute au sein de son propre exécuteur de machine virtuelle, ou au sein d'un conteneur, et comporte une ou plusieurs étapes qui exécutent un script que vous définissez ou une action, qui est une extension réutilisable qui peut simplifier votre workflow.

Diagramme d'un événement déclenchant Exécuteur 1 pour exécuter Travail 1, lequel déclenche Exécuteur 2 pour exécuter Travail 2. Chacun des travaux est divisé en plusieurs étapes.

Workflows

Un workflow est un processus automatisĂ© configurable qui exĂ©cutera un ou plusieurs travaux. Les workflows sont dĂ©finis par un fichier YAML archivĂ© dans votre dĂ©pĂŽt et s’exĂ©cutent lorsqu’ils sont dĂ©clenchĂ©s par un Ă©vĂ©nement dans votre dĂ©pĂŽt, ou ils peuvent ĂȘtre dĂ©clenchĂ©s manuellement ou selon une planification dĂ©finie.

Les workflows sont dĂ©finis dans le rĂ©pertoire .github/workflows d’un rĂ©fĂ©rentiel, et un rĂ©fĂ©rentiel peut avoir plusieurs workflows, chacun pouvant effectuer un ensemble diffĂ©rent de tĂąches. Par exemple, vous pouvez avoir un workflow pour gĂ©nĂ©rer et tester des demandes de tirage, un autre workflow pour dĂ©ployer votre application chaque fois qu’une version est crĂ©Ă©e, et encore un autre workflow qui ajoute une Ă©tiquette chaque fois que quelqu’un ouvre un nouveau problĂšme.

Vous pouvez référencer un workflow dans un autre workflow. Pour plus d'informations, consultez « Réutilisation des workflows ».

Pour plus d'informations sur les workflows, consultez « Utilisation de flux de travail ».

ÉvĂ©nements

Un événement est une activité spécifique dans un dépÎt qui déclenche l'exécution d'un workflow. Par exemple, l'activité peut provenir de GitHub quand quelqu'un crée une demande de tirage (pull request), ouvre un problÚme ou pousse (push) un commit vers un dépÎt. Vous pouvez également déclencher une exécution de workflow selon une planification, en publiant dans une API REST ou manuellement.

Pour obtenir la liste complĂšte des Ă©vĂ©nements qui peuvent ĂȘtre utilisĂ©s pour dĂ©clencher des workflows, consultez ÉvĂ©nements dĂ©clencheurs de workflows.

travaux

Un travail est un ensemble d'Ă©tapes dans un workflow qui s'exĂ©cute sur le mĂȘme exĂ©cuteur. Chaque Ă©tape est un script d'interprĂ©teur de commandes qui sera exĂ©cutĂ© ou une action qui sera exĂ©cutĂ©e. Les Ă©tapes sont exĂ©cutĂ©es dans l'ordre et dĂ©pendent les unes des autres. Comme chaque Ă©tape est exĂ©cutĂ©e sur le mĂȘme exĂ©cuteur, vous pouvez partager des donnĂ©es d'une Ă©tape Ă  une autre. Par exemple, vous pouvez avoir une Ă©tape qui gĂ©nĂšre votre application suivie d'une Ă©tape qui teste l'application gĂ©nĂ©rĂ©e.

Vous pouvez configurer les dépendances d'un travail avec d'autres travaux. Par défaut, les travaux n'ont aucune dépendance et s'exécutent en parallÚle entre eux. Lorsqu'un travail prend une dépendance sur un autre travail, il attend que le travail dépendant se termine avant de pouvoir s'exécuter. Par exemple, vous pouvez avoir plusieurs travaux de génération pour différentes architectures qui n'ont pas de dépendances, et un travail d'empaquetage dépendant de ces travaux. Les travaux de génération s'exécutent en parallÚle et le travail d'empaquetage s'exécutera quand ils auront fini de s'exécuter.

Pour plus d'informations sur les travaux, consultez « Utilisation des travaux ».

Actions

Une action est une application personnalisée pour la plateforme GitHub Actions qui effectue une tùche complexe mais fréquemment répétée. Utilisez une action pour réduire la quantité de code répétitif que vous écrivez dans vos fichiers de workflow. Une action peut tirer (pull) votre dépÎt git à partir de GitHub, configurer la chaßne d'outils appropriée pour votre environnement de build ou configurer l'authentification auprÚs de votre fournisseur de cloud.

Vous pouvez Ă©crire vos propres actions ou trouver des actions Ă  utiliser dans vos workflows dans le GitHub Marketplace.

Pour plus d'informations, consultez « CrĂ©ation d’actions ».

Exécuteurs

Un exĂ©cuteur est un serveur qui exĂ©cute vos workflows quand ils sont dĂ©clenchĂ©s. Chaque exĂ©cuteur peut exĂ©cuter un seul travail Ă  la fois. GitHub fournit les exĂ©cuteurs Ubuntu Linux, Microsoft Windows et macOS pour exĂ©cuter vos workflows. Chaque exĂ©cution de workflow s'exĂ©cute sur une machine virtuelle nouvellement provisionnĂ©e. GitHub propose Ă©galement des exĂ©cuteur plus grand, qui sont disponibles dans des configurations plus grandes. Pour plus d'informations, consultez « À propos des exĂ©cuteurs de plus grande taille ». Si vous avez besoin d'un systĂšme d'exploitation diffĂ©rent ou d'une configuration matĂ©rielle spĂ©cifique, vous pouvez hĂ©berger vos propres exĂ©cuteurs. Pour plus d'informations sur les exĂ©cuteurs auto-hĂ©bergĂ©s, consultez « HĂ©bergement de vos propres exĂ©cuteurs ».

Créer un exemple de workflow

GitHub Actions utilise la syntaxe YAML pour définir le workflow. Chaque workflow est stocké en tant que fichier YAML distinct dans votre référentiel de code, dans un répertoire appelé .github/workflows.

Vous pouvez créer un exemple de workflow dans votre dépÎt qui déclenche automatiquement une série de commandes chaque fois que du code est poussé (push). Dans ce workflow, GitHub Actions extrait le code envoyé, installe le framework de test bats et exécute une commande de base pour générer la version de bats : bats -v.

  1. Dans votre dépÎt, créez le répertoire .github/workflows/ pour stocker vos fichiers de workflow.

  2. Dans le répertoire .github/workflows/, créez un nouveau fichier appelé learn-github-actions.yml et ajoutez le code suivant.

    YAML
    name: learn-github-actions
    run-name: ${{ github.actor }} is learning GitHub Actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: '20'
          - run: npm install -g bats
          - run: bats -v
    
  3. Validez ces modifications et poussez-les vers votre dépÎt GitHub.

Votre nouveau fichier de workflow GitHub Actions est maintenant installĂ© dans votre dĂ©pĂŽt et s’exĂ©cute automatiquement chaque fois que quelqu’un pousse (push) une modification vers le dĂ©pĂŽt. Pour afficher les dĂ©tails sur l’historique d’exĂ©cution d’un workflow, consultez « Affichage de l’activitĂ© pour une exĂ©cution de workflow ».

Présentation du fichier de workflow

Pour vous aider Ă  comprendre comment la syntaxe YAML est utilisĂ©e pour crĂ©er un fichier de workflow, cette section explique chaque ligne de l’exemple d’introduction :

YAML
name: learn-github-actions

Optional - The name of the workflow as it will appear in the "Actions" tab of the GitHub repository. If this field is omitted, the name of the workflow file will be used instead.

run-name: ${{ github.actor }} is learning GitHub Actions

Optional - The name for workflow runs generated from the workflow, which will appear in the list of workflow runs on your repository's "Actions" tab. This example uses an expression with the github context to display the username of the actor that triggered the workflow run. For more information, see "Workflow syntax for GitHub Actions."

on: [push]

Specifies the trigger for this workflow. This example uses the push event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request. This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "Workflow syntax for GitHub Actions."

jobs:

Groups together all the jobs that run in the learn-github-actions workflow.

  check-bats-version:

Defines a job named check-bats-version. The child keys will define properties of the job.

    runs-on: ubuntu-latest

Configures the job to run on the latest version of an Ubuntu Linux runner. This means that the job will execute on a fresh virtual machine hosted by GitHub. For syntax examples using other runners, see "Workflow syntax for GitHub Actions"

    steps:

Groups together all the steps that run in the check-bats-version job. Each item nested under this section is a separate action or shell script.

      - uses: actions/checkout@v4

The uses keyword specifies that this step will run v4 of the actions/checkout action. This is an action that checks out your repository onto the runner, allowing you to run scripts or other actions against your code (such as build and test tools). You should use the checkout action any time your workflow will use the repository's code.

      - uses: actions/setup-node@v4
        with:
          node-version: '20'

This step uses the actions/setup-node@v4 action to install the specified version of the Node.js. (This example uses version 20.) This puts both the node and npm commands in your PATH.

      - run: npm install -g bats

The run keyword tells the job to execute a command on the runner. In this case, you are using npm to install the bats software testing package.

      - run: bats -v

Finally, you'll run the bats command with a parameter that outputs the software version.

# Optional - The name of the workflow as it will appear in the "Actions" tab of the GitHub repository. If this field is omitted, the name of the workflow file will be used instead.
name: learn-github-actions

# Optional - The name for workflow runs generated from the workflow, which will appear in the list of workflow runs on your repository's "Actions" tab. This example uses an expression with the `github` context to display the username of the actor that triggered the workflow run. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#run-name)."
run-name: ${{ github.actor }} is learning GitHub Actions

# Specifies the trigger for this workflow. This example uses the `push` event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request.  This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "[AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
on: [push]

# Groups together all the jobs that run in the `learn-github-actions` workflow.
jobs:

# Defines a job named `check-bats-version`. The child keys will define properties of the job.
  check-bats-version:

# Configures the job to run on the latest version of an Ubuntu Linux runner. This means that the job will execute on a fresh virtual machine hosted by GitHub. For syntax examples using other runners, see "[AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)"
    runs-on: ubuntu-latest

# Groups together all the steps that run in the `check-bats-version` job. Each item nested under this section is a separate action or shell script.
    steps:

# The `uses` keyword specifies that this step will run `v4` of the `actions/checkout` action. This is an action that checks out your repository onto the runner, allowing you to run scripts or other actions against your code (such as build and test tools). You should use the checkout action any time your workflow will use the repository's code.
      - uses: actions/checkout@v4

# This step uses the `actions/setup-node@v4` action to install the specified version of the Node.js. (This example uses version 20.) This puts both the `node` and `npm` commands in your `PATH`.
      - uses: actions/setup-node@v4
        with:
          node-version: '20'

# The `run` keyword tells the job to execute a command on the runner. In this case, you are using `npm` to install the `bats` software testing package.
      - run: npm install -g bats

# Finally, you'll run the `bats` command with a parameter that outputs the software version.
      - run: bats -v

Visualisation du fichier de workflow

Dans ce diagramme, vous pouvez voir le fichier de workflow que vous venez de crĂ©er et comment les composants GitHub Actions sont organisĂ©s dans une hiĂ©rarchie. Chaque Ă©tape exĂ©cute une action ou un script d’interprĂ©teur de commandes unique. Les Ă©tapes 1 et 2 exĂ©cutent des actions, tandis que les Ă©tapes 3 et 4 exĂ©cutent des scripts d’interprĂ©teur de commandes. Pour trouver d’autres actions prĂ©dĂ©finies pour vos workflows, consultez « Recherche et personnalisation d’actions ».

Diagramme montrant le dĂ©clencheur, l’exĂ©cuteur et le travail d’un workflow. Le travail est divisĂ© en 4 étapes.

Affichage de l’activitĂ© pour une exĂ©cution de workflow

Lorsque votre workflow est dĂ©clenchĂ©, une exĂ©cution de workflow est crĂ©Ă©e et exĂ©cute le workflow. Une fois l’exĂ©cution de votre workflow dĂ©marrĂ©e, vous pouvez voir un graphe de visualisation de la progression de l’exĂ©cution, ainsi que l’activitĂ© de chaque Ă©tape sur GitHub.

  1. Dans GitHub.com, accédez à la page principale du dépÎt.

  2. Sous le nom de votre dépÎt, cliquez sur Actions.

    Capture d’écran des onglets du rĂ©fĂ©rentiel « github/docs ». L’onglet « Actions » est mis en surbrillance avec un encadrĂ© orange.

  3. Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.

    Capture d'écran de la barre latérale gauche de l'onglet « Actions », avec un workflow « CodeQL » indiqué en orange foncé.

  4. Dans la liste des exĂ©cutions de workflow, cliquez sur le nom de l’exĂ©cution pour voir le rĂ©sumĂ© de l’exĂ©cution du workflow.

  5. Dans la barre latérale à gauche ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez voir.

  6. Pour voir les rĂ©sultats d’une Ă©tape, cliquez sur l’étape.

Étapes suivantes

GitHub Actions peut vous aider Ă  automatiser presque tous les aspects de vos processus de dĂ©veloppement d’applications. Vous ĂȘtes prĂȘt Ă  commencer ? Voici quelques ressources utiles pour effectuer vos Ă©tapes suivantes avec GitHub Actions :

  • Pour obtenir un moyen rapide de crĂ©er un flux de travail GitHub Actions, consultez « Utilisation de workflows de dĂ©marrage ».
  • Pour obtenir des workflows d’intĂ©gration continue (CI) permettant de gĂ©nĂ©rer et tester votre code, consultez « Automatisation des builds et des tests ».
  • Pour gĂ©nĂ©rer et publier des packages, consultez « Publication de packages ».
  • Pour le dĂ©ploiement de projets, consultez « DĂ©ploiement ».
  • Pour automatiser les tĂąches et les processus sur GitHub, consultez « Gestion des problĂšmes et demandes de tirage ».
  • Pour obtenir des exemples illustrant les fonctionnalitĂ©s plus complexes de GitHub Actions, dont beaucoup des cas d’usage ci-dessus, consultez « Exemples ». Des exemples dĂ©taillĂ©s expliquent comment tester votre code sur un exĂ©cuteur et accĂ©der Ă  la CLI GitHub. Ils montrent Ă©galement comment utiliser des fonctions avancĂ©es telles que la concurrence et les matrices de test.
  • Si vous souhaitez certifier vos compĂ©tences en matiĂšre d'automatisation des flux de travail et d'accĂ©lĂ©ration du dĂ©veloppement avec GitHub Actions, vous pouvez obtenir un certificat GitHub Actions avec GitHub Certifications. Pour plus d’informations, consultez « À propos de GitHub Certifications ».