
GitHub Actions
GitHub Actions est une plateforme d’intégration continue et de livraison continue (CI/CD) qui vous permet d’automatiser votre pipeline de construction, de test et de déploiement. Vous pouvez créer des workflows qui construisent et testent chaque pull request vers votre dépôt, ou déployer les pull requests fusionnées en production.
Dernièrement, GitHub a également ajouté la possibilité d’utiliser les GitHub Models dans les actions.
La combinaison d’Actions et de Models vous permet d’exécuter GenAIScript dans le cadre de votre CI/CD.
Exemples
Section intitulée « Exemples »- Étiqueteur d’issues GenAI
- Dédupliqueur d’issues GenAI
- Analyseur vidéo d’issues GenAI
- Commentateur de code GenAI
Permissions GitHub Models
Section intitulée « Permissions GitHub Models »Pour utiliser les Models dans une action GitHub, vous devez définir les permissions
de l’action pour inclure models: read
.
permissions: models: read
GenAIScript supporte nativement les GitHub Models, vous pouvez donc l’utiliser directement dans votre workflow GitHub Actions.
Utilisation de la CLI
Section intitulée « Utilisation de la CLI »La façon la plus simple d’utiliser GenAIScript dans une action GitHub est d’exécuter directement la CLI. Vous pouvez le faire en ajoutant une étape dans votre workflow qui exécute la commande genaiscript
.
- uses: actions/setup-node@v4 # make sure node.js is installed- name: Run GenAIScript run: npx -y genaiscript run ... env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Assurez-vous d’inclure le GITHUB_TOKEN
dans les variables d’environnement afin que GenAIScript puisse s’authentifier auprès des GitHub Models.
---run: npx -y genaiscript run ...env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Actions personnalisées
Section intitulée « Actions personnalisées »GitHub supporte le packaging des tâches sous forme d’actions personnalisées, généralement dans un dépôt dédié. C’est un excellent moyen d’empaqueter un script IA et de le partager avec d’autres.
- name: Run AI Script uses: <owner>/<repo>@<tag> with: github_token: ${{ secrets.GITHUB_TOKEN }}
La CLI GenAIScript fournit une commande pour générer/mettre à jour le code standard afin d’empaqueter un script sous forme d’une action conteneur Docker, ce qui permet de l’utiliser dans GitHub Actions quel que soit le langage utilisé pour écrire le script.
Pour commencer,
Créez un nouveau dépôt pour votre action.
Ouvrez un terminal à la racine de votre dépôt.
Exécutez la commande pour générer le squelette de l’action :
Fenêtre de terminal npx -y genaiscript configure action
Le générateur de squelette d’action va écraser les fichiers suivants :
action.yml
Fichier des métadonnées de l’actionDockerfile
Dockerfile pour l’actionREADME.md
Documentation pour l’action.gitignore
Fichiers à ignorer dans le dépôt.github/workflows/ci.yml
Workflow CI pour tester l’actionpackage.json
Configuration du package pour l’actiondevcontainer/devcontainer.json
Configuration du devcontainer pour VS Codedevcontainer/Dockerfile
Dockerfile du devcontainer pour VS Code. Doit être synchronisé avec le Dockerfile de l’action.
Pour mettre à jour le squelette de l’action, vous pouvez relancer la même commande :
npm run configure
Métadonnées
Section intitulée « Métadonnées »Le fichier action.yml
contient les métadonnées de l’action. Elles sont extraites de différentes parties de votre projet :
- Le
name
est dérivé de l’identifiant du script. - La
description
est dérivée dutitle
du script. - Les
inputs
sont dérivés des paramètres du script (voir ci-dessous).
Notez que la script.description
est utilisée pour remplir le fichier README.md
.
La section inputs
du fichier action.yml
est générée automatiquement à partir des paramètres du script.
Chaque paramètre est converti en une entrée (input) portant le même nom, et le type est inféré à partir du type du paramètre.
script({ title: "A poem generator", accept: "none", parameters: { topic: "nature" }})$`Write a poem about ${env.vars.topic}`.
Le fichier action.yml
généré ressemblera à ceci :
name: poemdescription: Write a poem about natureinputs: topic: description: The topic of the poem required: false default: nature
Il existe aussi des champs additionnels communs à toutes les actions GenAIScript :
files
: Spécifie un chemin de fichier pour alimenter la variableenv.files
. Pour retirer ce champ, mettezaccept: "none"
dans le script.github_token
: Cela est requis pour s’authentifier auprès des GitHub Models.
Il deviendraINPUT_GITHUB_TOKEN
lorsque le conteneur sera créé et GenAIScript le détectera automatiquement.github_issue
: Le numéro actuel de l’issue ou de la pull request GitHub.debug
: Le filtre pour contrôler les messages de logging de débogage.
L’action remplit quelques champs de sortie.
text
: le texte généré par le script.data
: la structure de sortie analysée et convertie en chaîne JSON. Ce champ est rempli si vous fournissez un responseSchema dans le script et si le LLM peut générer une réponse conforme au schéma.
Branding
Section intitulée « Branding »Le champ branding
du script
est utilisé pour personnaliser l’apparence de l’action dans l’interface GitHub.
script({ branding: { icon: "pencil", color: "blue", },})
Conteneurs
Section intitulée « Conteneurs »Par défaut, GenAIScript utilise node:lts-alpine comme image de base pour le conteneur de l’action.
Vous pouvez changer cela en spécifiant une autre image de base dans la cli
.
npx -y genaiscript configure action ... --image <image>
GenAIScript créera également un devcontainer afin que vous puissiez développer l’action dans un environnement conteneurisé (presque identique) à celui où elle s’exécute dans GitHub Action.
ffmpeg, playwright et autres paquets
Section intitulée « ffmpeg, playwright et autres paquets »Pour garder le conteneur d’action léger, GenAIScript n’inclut pas ffmpeg
, playwright
ni d’autres paquets par défaut.
Vous pouvez les ajouter au conteneur en les spécifiant dans la commande de la cli
.
npx -y genaiscript configure action ... --ffmpeg --playwright
Vous pouvez également ajouter tous les autres paquets nécessaires en les indiquant dans la commande cli
.
npx -y genaiscript configure action ... --apks <package1> <package2>
Tests de l’Action
Section intitulée « Tests de l’Action »Votre script devrait être testable localement en utilisant la commande npm run dev
. N’hésitez pas à la modifier dans package.json
.
npm run dev
Ou si vous souhaitez simuler l’environnement GitHub Action, vous pouvez définir les variables INPUT_<paramètre>
dans l’environnement.
INPUT_TOPIC=nature genaiscript run poem
Workspace GitHub vs Workspace Action
Section intitulée « Workspace GitHub vs Workspace Action »Lors de l’exécution de l’action dans un conteneur, le contenu du dépôt de l’action est d’abord copié dans le répertoire /github/action
. GitHub clone le dépôt dans le répertoire /github/workspace
.
Le ENTRYPOINT
du Dockerfile
est configuré pour lancer la CLI genaiscript
dans le répertoire /github/action
, puis il détecte la variable d’environnement GITHUB_WORKSPACE
pour déterminer le répertoire de travail et change le cwd
en conséquence.
Ce mode est activé par l’option --github-workspace
dans la commande cli
.
Traduit par IA. Veuillez vérifier le contenu pour plus de précision.