Actions Composites
Les actions GitHub permettent d'automatiser, personnaliser et exécuter un flux de travail directement depuis votre dépôt. Avec les actions GitHub, il est possible de créer des tâches personnalisées pour automatiser un flux de travail, partager et découvrir des actions pour effectuer des tâches spécifiques.
Comment créer ses propres actions
Documentation complète : https://docs.github.com/fr/actions/creating-actions
Prérequis : Workflow
La création d'actions personnalisées offre la possibilité de concevoir du code spécifique qui interagit avec le dépôt selon les besoins. Ces actions peuvent s'intégrer aux API de GitHub ou à toute API tierce accessible publiquement. Par exemple, une action pourrait être configurée pour publier des modules npm, envoyer des alertes par SMS en cas de création de problèmes urgents, ou encore déployer du code prêt pour la production. Ce guide expose les éléments fondamentaux requis pour la création et l'utilisation d'une action composite empaquetée.
Lors de la création de flux de travail et d'actions, il est impératif d'évaluer constamment la possibilité d'exécution d'une entrée non fiable provenant de sources potentiellement malveillantes. Certains contextes doivent être traités comme des entrées non fiables, car un attaquant pourrait insérer son propre contenu malveillant. Pour de plus amples informations, veuillez consulter la section « Durcissement de la sécurité pour GitHub Actions ».
Création d’une action
Un dépôt doit être créé sur GitHub.com.
- Créez un nouveau dépôt sur GitHub, en choisissant n'importe quel nom de dépôt ou en utilisant l'exemple suivant :
hello-world-composite-action
. Les fichiers peuvent être ajoutés une fois que le projet est poussé sur GitHub. Pour plus d'informations, veuillez vous référer à la section Création d'un dépôt. - Dans le dépôt
hello-world-composite-action
, créez un fichier nommégoodbye.sh
et ajoutez le codeecho "Goodbye
- Rendez
goodbye.sh
exécutable depuis votre terminal. - Dans le dépôt
hello-world-composite-action
, créez un fichier nomméaction.yml
et ajoutez le code suivant en exemple. Pour plus d'informations sur cette syntaxe, consultez la section Syntaxe des métadonnées pour les actions GitHub .
name: 'Hello World'
description: 'Greet someone'
inputs:
who-to-greet: # id of input
description: 'Who to greet'
required: true
default: 'World'
outputs:
random-number:
description: "Random number"
value: ${{ steps.random-number-generator.outputs.random-number }}
runs:
using: "composite"
steps:
- run: echo Hello ${{ inputs.who-to-greet }}.
shell: bash
- id: random-number-generator
run: echo "random-number=$(echo $RANDOM)" >> $GITHUB_OUTPUT
shell: bash
- run: echo "${{ github.action_path }}" >> $GITHUB_PATH
shell: bash
- run: goodbye.sh
shell: bash
- Ce fichier définit l'entrée
who-to-greet
, mappe le nombre généré aléatoirement à la variable de sortierandom-number
, ajoute le chemin d'acc ès de l'action au chemin d'accès du système de l'exécuteur (pour localiser le scriptgoodbye.sh
lors de l'exécution) et exécute le script . - Effectuez le commit de votre fichier
action.yml
depuis votre terminal.
git add action.yml
git commit -m "Add action"
git push
- Ajoutez une étiquette depuis votre terminal. Cet exemple utilise une étiquette nommée
v1
.
git tag -a -m "Description of this release" v1
git push --follow-tags
Tester l’action dans un workflow
Copiez le code de workflow dans un fichier .github/workflows/main.yml
d'un autre dépôt
on: [push]
jobs:
hello_world_job:
runs-on: ubuntu-latest
name: A job to say hello
steps:
- uses: actions/checkout@v4
- id: foo
uses: actions/hello-world-composite-action@v1
with:
who-to-greet: 'Mona the Octocat'
- run: echo random-number ${{ steps.foo.outputs.random-number }}
shell: bash
Action dans un workflow privé
Dans les paramètres des actions, il est nécessaire de la partager à l’organisation