Note
Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.
Vue d’ensemble
Une exécution de workflow est composée d’un ou de plusieurs jobs
, qui s’exécutent en parallèle par défaut. Pour exécuter des travaux de manière séquentielle, vous pouvez définir des dépendances par rapport à d’autres travaux à l’aide du mot clé jobs.<job_id>.needs
.
Chaque travail s’exécute dans un environnement d’exécuteur spécifié par runs-on
.
Vous pouvez exécuter un nombre illimité de travaux tant que vous respectez les limites d’utilisation du workflow. Pour plus d’informations, consultez « Limites d’utilisation, facturation et administration » pour les exécuteurs hébergés par GitHub et À propos des exécuteurs auto-hébergés » pour les limites d’utilisation des exécuteurs auto-hébergés.
Si vous devez trouver l’identificateur unique d’un travail en cours d’exécution dans une exécution de workflow, vous pouvez utiliser l’API GitHub Enterprise Server. Pour plus d’informations, consultez « Points de terminaison REST pour l’API GitHub Actions ».
Définition d’un ID pour un travail
Utilisez jobs.<job_id>
pour attribuer un identificateur unique à votre travail. La clé job_id
est une chaîne et sa valeur est une carte des données de configuration du travail. Vous devez remplacer <job_id>
par une chaîne propre à l’objet jobs
. <job_id>
doit commencer par une lettre ou par _
, et contenir uniquement des caractères alphanumériques, des -
ou des _
.
Exemple : Création de travaux
Dans cet exemple, deux travaux ont été créés, et leurs valeurs job_id
sont my_first_job
et my_second_job
.
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
Définition d’un nom pour un travail
Utilisez jobs.<job_id>.name
pour définir un nom pour le travail, qui s’affiche sur l’interface utilisateur GitHub.
Définition des travaux prérequis
Utilisez jobs.<job_id>.needs
pour identifier les travaux à accomplir avant l’exécution de ce travail. Il peut s’agir d’une chaîne ou d’un tableau de chaînes. Si un travail échoue ou est ignoré, tous les travaux qui besoin de celui-ci sont ignorés, sauf s’ils utilisent une expression conditionnelle entraînant la poursuite du travail. Si une exécution contient une série de travaux qui ont besoin l’un de l’autre, une défaillance ou l’action d’ignorer s’applique à tous les travaux de la chaîne de dépendance à partir du point en question. Si vous souhaitez qu’un travail s’exécute même si un travail dont il dépend n’a pas réussi, utilisez l’expression conditionnelle always()
dans jobs.<job_id>.if
.
Exemple : Exigence de réussite de travaux dépendants
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
Dans cet exemple, job1
doit être correctement accompli avant que job2
commence, et job3
attend que job1
et job2
soient accomplis.
Les travaux dans cet exemple s’exécutent séquentiellement :
job1
job2
job3
Exemple : Non-exigence de réussite de travaux dépendants
jobs:
job1:
job2:
needs: job1
job3:
if: ${{ always() }}
needs: [job1, job2]
Dans cet exemple, job3
utilise l’expression conditionnelle always()
afin de toujours s’exécuter après que job1
et job2
ont été effectués avec ou sans succès. Pour plus d’informations, consultez « Évaluer les expressions dans les workflows et les actions ».