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: readGenAIScript 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.ymlFichier des métadonnées de l’actionDockerfileDockerfile pour l’actionREADME.mdDocumentation pour l’action.gitignoreFichiers à ignorer dans le dépôt.github/workflows/ci.ymlWorkflow CI pour tester l’actionpackage.jsonConfiguration du package pour l’actiondevcontainer/devcontainer.jsonConfiguration du devcontainer pour VS Codedevcontainer/DockerfileDockerfile 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 configureMé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
nameest dérivé de l’identifiant du script. - La
descriptionest dérivée dutitledu script. - Les
inputssont 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: natureIl 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_TOKENlorsque 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 --playwrightVous 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 devOu 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 poemWorkspace 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.