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.
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
.
-
Dans votre dépÎt, créez le répertoire
.github/workflows/
pour stocker vos fichiers de workflow. -
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
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
-
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 :
# 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
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 ».
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.
-
Dans GitHub.com, accédez à la page principale du dépÎt.
-
Sous le nom de votre dépÎt, cliquez sur Actions.
-
Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.
-
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.
-
Dans la barre latérale à gauche ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez voir.
-
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 ».