{"id":7772,"date":"2025-09-01T09:33:44","date_gmt":"2025-09-01T09:33:44","guid":{"rendered":"https:\/\/techhub.saworks.io\/docs\/tutoriel-github-intermediaire\/automatiser-les-tests-de-charge-azure-en-utilisant-github\/explorer-les-contextes-et-les-expressions-dans-github\/"},"modified":"2025-09-24T12:02:34","modified_gmt":"2025-09-24T12:02:34","slug":"explorer-les-contextes-et-les-expressions-dans-github","status":"publish","type":"docs","link":"https:\/\/techhub.saworks.io\/fr\/docs\/tutoriel-github-intermediaire\/automatiser-les-tests-de-charge-azure-en-utilisant-github\/explorer-les-contextes-et-les-expressions-dans-github\/","title":{"rendered":"Explorer les contextes et les expressions dans GitHub"},"content":{"rendered":"\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>Les <strong>contextes<\/strong> permettent d\u2019acc\u00e9der \u00e0 des informations sur les ex\u00e9cutions de flux de travail, les variables, les environnements des runners, les jobs et les \u00e9tapes.<br>Chaque contexte est un objet contenant des propri\u00e9t\u00e9s, qui peuvent \u00eatre des cha\u00eenes de caract\u00e8res ou d\u2019autres objets.<\/p>\n\n\n\n<p>Vous pouvez acc\u00e9der aux contextes en utilisant la <strong>syntaxe des expressions<\/strong>. Une expression peut \u00eatre une combinaison de valeurs litt\u00e9rales, de r\u00e9f\u00e9rences \u00e0 un contexte ou de fonctions. Vous pouvez combiner des litt\u00e9raux, des r\u00e9f\u00e9rences de contexte et des fonctions \u00e0 l\u2019aide d\u2019op\u00e9rateurs.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Contextes<\/strong><\/h3>\n\n\n\n<p>Lorsque vous cr\u00e9ez des workflows et des actions, vous devez toujours consid\u00e9rer la possibilit\u00e9 que votre code ex\u00e9cute des entr\u00e9es non fiables provenant d\u2019attaquants potentiels. Certains contextes doivent \u00eatre trait\u00e9s comme des entr\u00e9es non fiables, car un attaquant pourrait y ins\u00e9rer du contenu malveillant.<br>Pour plus d\u2019informations, consultez la page <strong>Renforcement de la s\u00e9curit\u00e9 pour GitHub Actions<\/strong>.<\/p>\n\n\n\n<p>Le tableau suivant contient des exemples de contextes disponibles dans GitHub, mais <strong>ce n\u2019est pas une liste exhaustive<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Nom du contexte<\/strong><\/th><th><strong>Type<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>github<\/code><\/td><td>objet<\/td><td>Informations sur l\u2019ex\u00e9cution du flux de travail.<\/td><\/tr><tr><td><code>env<\/code><\/td><td>objet<\/td><td>Contient les variables d\u00e9finies dans un flux de travail, un job ou une \u00e9tape.<\/td><\/tr><tr><td><code>vars<\/code><\/td><td>objet<\/td><td>Contient les variables d\u00e9finies au niveau du d\u00e9p\u00f4t, de l\u2019organisation ou de l\u2019environnement.<\/td><\/tr><tr><td><code>job<\/code><\/td><td>objet<\/td><td>Informations sur le job en cours d\u2019ex\u00e9cution.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained\" style=\"background-color:#fcb90054\">\n<h3 class=\"wp-block-heading\">\ud83d\udca1&nbsp;<strong>Astuce<\/strong><\/h3>\n\n\n\n<p>Pour une liste compl\u00e8te des contextes, consultez la page <strong>\u00c0 propos des contextes<\/strong>.<\/p>\n<\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>D\u00e9terminer quand utiliser les contextes<\/strong><\/h3>\n\n\n\n<p>GitHub Actions inclut deux collections de variables : les <strong>variables d\u2019environnement par d\u00e9faut<\/strong> et les <strong>contextes<\/strong>. Ces variables sont destin\u00e9es \u00e0 \u00eatre utilis\u00e9es \u00e0 diff\u00e9rents moments dans le flux de travail :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Variables d\u2019environnement par d\u00e9faut<\/strong> : Ces variables existent uniquement sur le runner qui ex\u00e9cute votre job.<\/li>\n\n\n\n<li><strong>Contextes<\/strong> : Vous pouvez utiliser la plupart des contextes \u00e0 n\u2019importe quel moment dans votre flux de travail, y compris lorsque les variables par d\u00e9faut ne sont pas disponibles.<\/li>\n<\/ul>\n\n\n\n<p>Dans l\u2019exemple suivant, l\u2019instruction <code>if<\/code> v\u00e9rifie le contexte <code>github.ref<\/code> pour d\u00e9terminer le nom de la branche actuelle.<br>La condition <code>if<\/code> est \u00e9valu\u00e9e, et le job est envoy\u00e9 au runner uniquement si le r\u00e9sultat est vrai.<br>Une fois le job envoy\u00e9 au runner, l\u2019\u00e9tape est ex\u00e9cut\u00e9e et fait r\u00e9f\u00e9rence \u00e0 la variable <code>$GITHUB_REF<\/code> disponible sur le runner.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#f2f2f2;color:#2f363c\">YAML<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>name: CI\non: push\njobs:\n  prod-check:\n    if: ${{ github.ref == 'refs\/heads\/main' }}\n    runs-on: ubuntu-latest\n    steps:\n      - run: echo \"Deploying to production server on branch $GITHUB_REF\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #22863A\">name<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">CI<\/span><\/span>\n<span class=\"line\"><span style=\"color: #005CC5\">on<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">push<\/span><\/span>\n<span class=\"line\"><span style=\"color: #22863A\">jobs<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">prod-check<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #22863A\">if<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ github.ref == &#39;refs\/heads\/main&#39; }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #22863A\">runs-on<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">ubuntu-latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #22863A\">steps<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">      - <\/span><span style=\"color: #22863A\">run<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">echo &quot;Deploying to production server on branch $GITHUB_REF&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Contextes disponibles dans GitHub Actions<\/h3>\n\n\n\n<p>Le tableau suivant pr\u00e9sente les contextes de niveau sup\u00e9rieur disponibles, une br\u00e8ve description, ainsi qu\u2019un lien vers plus d\u2019informations sur les propri\u00e9t\u00e9s de chaque objet.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Contexte de niveau sup\u00e9rieur<\/strong><\/th><th><strong>Description<\/strong><\/th><th><strong>Propri\u00e9t\u00e9s et exemples<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>github<\/code><\/td><td>Contexte de niveau sup\u00e9rieur disponible dans n\u2019importe quel job ou \u00e9tape d\u2019un flux de travail.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#github-context\">Propri\u00e9t\u00e9s du contexte <code>github<\/code><\/a><\/td><\/tr><tr><td><code>env<\/code><\/td><td>Contient les variables d\u00e9finies dans un flux de travail, un job ou une \u00e9tape. Ne contient pas les variables h\u00e9rit\u00e9es du processus du runner.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#env-context\">Propri\u00e9t\u00e9s du contexte <code>env<\/code><\/a><\/td><\/tr><tr><td><code>vars<\/code><\/td><td>Contient les variables de configuration personnalis\u00e9es d\u00e9finies au niveau de l\u2019organisation, du d\u00e9p\u00f4t ou de l\u2019environnement.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#vars-context\">Exemples d\u2019utilisation de <code>vars<\/code><\/a><\/td><\/tr><tr><td><code>job<\/code><\/td><td>Contient des informations sur le job en cours d\u2019ex\u00e9cution.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#job-context\">Propri\u00e9t\u00e9s du contexte <code>job<\/code><\/a><\/td><\/tr><tr><td><code>jobs<\/code><\/td><td>Disponible uniquement dans les workflows r\u00e9utilisables, et utilis\u00e9 uniquement pour d\u00e9finir des outputs.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#jobs-context\">Propri\u00e9t\u00e9s du contexte <code>jobs<\/code><\/a><\/td><\/tr><tr><td><code>steps<\/code><\/td><td>Contient des informations sur les \u00e9tapes termin\u00e9es dans le job actuel, \u00e0 condition qu\u2019un identifiant ait \u00e9t\u00e9 sp\u00e9cifi\u00e9.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#steps-context\">Propri\u00e9t\u00e9s du contexte <code>steps<\/code><\/a><\/td><\/tr><tr><td><code>runner<\/code><\/td><td>Contient des informations sur le runner qui ex\u00e9cute le job actuel.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#runner-context\">Propri\u00e9t\u00e9s du contexte <code>runner<\/code><\/a><\/td><\/tr><tr><td><code>secrets<\/code><\/td><td>Contient les noms et les valeurs des secrets disponibles pour une ex\u00e9cution de flux de travail.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#secrets-context\">Propri\u00e9t\u00e9s du contexte <code>secrets<\/code><\/a><\/td><\/tr><tr><td><code>strategy<\/code><\/td><td>Contient des informations sur la strat\u00e9gie d\u2019ex\u00e9cution matricielle du job actuel.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#strategy-context\">Propri\u00e9t\u00e9s du contexte <code>strategy<\/code><\/a><\/td><\/tr><tr><td><code>matrix<\/code><\/td><td>Contient les propri\u00e9t\u00e9s de la matrice d\u00e9finies dans le fichier de flux de travail et applicables au job actuel.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#matrix-context\">Propri\u00e9t\u00e9s du contexte <code>matrix<\/code><\/a><\/td><\/tr><tr><td><code>needs<\/code><\/td><td>Contient les outputs de tous les jobs d\u00e9finis comme d\u00e9pendances directes du job actuel.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#needs-context\">Propri\u00e9t\u00e9s du contexte <code>needs<\/code><\/a><\/td><\/tr><tr><td><code>inputs<\/code><\/td><td>Contient les propri\u00e9t\u00e9s d\u2019entr\u00e9e pass\u00e9es \u00e0 une action, \u00e0 un workflow r\u00e9utilisable ou \u00e0 un workflow d\u00e9clench\u00e9 manuellement.<\/td><td><a href=\"https:\/\/docs.github.com\/fr\/actions\/reference\/workflows-and-actions\/contexts#inputs-context\">Propri\u00e9t\u00e9s du contexte <code>inputs<\/code><\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Expressions<\/strong><\/h3>\n\n\n\n<p>Vous pouvez utiliser des <strong>expressions<\/strong> pour d\u00e9finir des variables d\u2019environnement de mani\u00e8re programmatique dans les fichiers de flux de travail et pour acc\u00e9der aux contextes.<br>Une expression peut \u00eatre une combinaison de valeurs litt\u00e9rales, de r\u00e9f\u00e9rences \u00e0 un contexte ou de fonctions. Vous pouvez combiner ces \u00e9l\u00e9ments \u00e0 l\u2019aide d\u2019op\u00e9rateurs.<\/p>\n\n\n\n<p>Les expressions sont souvent utilis\u00e9es avec le mot-cl\u00e9 conditionnel <code>if<\/code> dans un fichier de flux de travail pour d\u00e9terminer si une \u00e9tape doit s\u2019ex\u00e9cuter.<br>Lorsque la condition <code>if<\/code> est vraie, l\u2019\u00e9tape est ex\u00e9cut\u00e9e.<\/p>\n\n\n\n<p>Pour que GitHub \u00e9value une expression au lieu de la traiter comme une cha\u00eene de caract\u00e8res, vous devez utiliser la syntaxe sp\u00e9cifique :<\/p>\n\n\n\n<p>YAML<\/p>\n\n\n\n<p>${{ &lt;expression&gt; }}<br>Afficher plus de lignes<\/p>\n\n\n\n<p><strong>Exception<\/strong> : dans une clause <code>if<\/code>, cette syntaxe peut g\u00e9n\u00e9ralement \u00eatre omise.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#f2f2f2;color:#2f363c\">YAML<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>env:\n  MY_ENV_VAR: ${{ &lt;expression> }}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #22863A\">env<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">MY_ENV_VAR<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ &lt;expression&gt; }}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Litt\u00e9raux<\/strong><\/h3>\n\n\n\n<p>Dans une expression, vous pouvez utiliser les types de donn\u00e9es suivants : <strong>bool\u00e9en<\/strong>, <strong>null<\/strong>, <strong>nombre<\/strong> ou <strong>cha\u00eene de caract\u00e8res<\/strong>.<br>Dans les conditions, les valeurs dites <em>falsy<\/em> (<code>false<\/code>, <code>0<\/code>, <code>-0<\/code>, <code>\"\"<\/code>, <code>''<\/code>, <code>null<\/code>) sont converties en <code>false<\/code>, tandis que les valeurs <em>truthy<\/em> (<code>true<\/code> et toutes les autres valeurs non falsy) sont converties en <code>true<\/code>.<\/p>\n\n\n\n<p>Voici quelques exemples montrant comment impl\u00e9menter des litt\u00e9raux.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#f2f2f2;color:#2f363c\">YAML<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>env:\n  myNull: ${{ null }}\n  myBoolean: ${{ false }}\n  myIntegerNumber: ${{ 711 }}\n  myFloatNumber: ${{ -9.2 }}\n  myHexNumber: ${{ 0xff }}\n  myExponentialNumber: ${{ -2.99e-2 }}\n  myString: Mona the Octocat\n  myStringInBraces: ${{ 'It''s open source!' }}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #22863A\">env<\/span><span style=\"color: #24292E\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myNull<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ null }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myBoolean<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ false }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myIntegerNumber<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ 711 }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myFloatNumber<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ -9.2 }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myHexNumber<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ 0xff }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myExponentialNumber<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ -2.99e-2 }}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myString<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">Mona the Octocat<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #22863A\">myStringInBraces<\/span><span style=\"color: #24292E\">: <\/span><span style=\"color: #032F62\">${{ &#39;It&#39;&#39;s open source!&#39; }}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Op\u00e9rateurs<\/strong><\/h3>\n\n\n\n<p>Les <strong>op\u00e9rateurs<\/strong> jouent un r\u00f4le essentiel dans l\u2019\u00e9valuation des expressions. Une expression peut \u00eatre compos\u00e9e de valeurs litt\u00e9rales, de r\u00e9f\u00e9rences \u00e0 des contextes ou de fonctions. Les op\u00e9rateurs permettent de combiner ces \u00e9l\u00e9ments pour cr\u00e9er des expressions plus complexes.<\/p>\n\n\n\n<p>Voici quelques op\u00e9rateurs cl\u00e9s :<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Op\u00e9rateurs logiques :<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>&amp;&amp;<\/code> (<strong>et<\/strong>) : Combine deux conditions ; les deux doivent \u00eatre vraies pour que l\u2019expression soit \u00e9valu\u00e9e comme vraie.<\/li>\n\n\n\n<li><code>||<\/code> (<strong>ou<\/strong>) : Combine deux conditions ; l\u2019expression est vraie si l\u2019une des deux conditions est vraie.<\/li>\n\n\n\n<li><code>!<\/code> (<strong>non<\/strong>) : N\u00e9gation d\u2019une condition ; inverse sa valeur de v\u00e9rit\u00e9.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Op\u00e9rateurs d\u2019\u00e9galit\u00e9 :<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>==<\/code> (<strong>\u00e9gal<\/strong>) : Compare deux valeurs pour v\u00e9rifier leur \u00e9galit\u00e9.<\/li>\n\n\n\n<li><code>!=<\/code> (<strong>diff\u00e9rent<\/strong>) : V\u00e9rifie si deux valeurs ne sont pas \u00e9gales.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Op\u00e9rateurs de comparaison :<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>&lt;<\/code> (<strong>inf\u00e9rieur \u00e0<\/strong>)<\/li>\n\n\n\n<li><code>><\/code> (<strong>sup\u00e9rieur \u00e0<\/strong>)<\/li>\n\n\n\n<li><code>&lt;=<\/code> (<strong>inf\u00e9rieur ou \u00e9gal \u00e0<\/strong>)<\/li>\n\n\n\n<li><code>>=<\/code> (<strong>sup\u00e9rieur ou \u00e9gal \u00e0<\/strong>)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ces op\u00e9rateurs permettent de cr\u00e9er des <strong>workflows dynamiques<\/strong>, en d\u00e9terminant si certaines \u00e9tapes doivent s\u2019ex\u00e9cuter selon des conditions.<\/p>\n\n\n\n<p>N\u2019oubliez pas d\u2019utiliser la <strong>syntaxe correcte<\/strong> pour les expressions, comme :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#f2f2f2;color:#2f363c\">YAML<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>${{ &lt;expression> }}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #032F62\">${{ &lt;expression&gt; }}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cela indique \u00e0 GitHub qu\u2019il doit <strong>\u00e9valuer l\u2019expression<\/strong> plut\u00f4t que de la traiter comme une simple cha\u00eene de caract\u00e8res.<\/p>\n\n\n\n<p><strong>Exception<\/strong> : dans une clause <code>if<\/code>, vous pouvez g\u00e9n\u00e9ralement <strong>omettre<\/strong> les d\u00e9limiteurs <code>${{ }}<\/code>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Les contextes permettent d\u2019acc\u00e9der \u00e0 des informations sur les ex\u00e9cutions de flux de travail, les variables, les environnements des runners, les jobs et [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":7721,"menu_order":46,"comment_status":"closed","ping_status":"closed","template":"","doc_tag":[],"doc_badge":[],"class_list":["post-7772","docs","type-docs","status-publish","hentry"],"author_avatar":"https:\/\/secure.gravatar.com\/avatar\/6a70e7c73db9f245e650948d09d74f61?s=96&d=mm&r=g","author_name":"Annick N'dri","_links":{"self":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/7772"}],"collection":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/comments?post=7772"}],"version-history":[{"count":0,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/7772\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/7721"}],"wp:attachment":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/media?parent=7772"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/doc_tag?post=7772"},{"taxonomy":"doc_badge","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/doc_badge?post=7772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}