initialize de votre blueprint. Devin télécharge et exécute l’action pendant le build du snapshot, de la même manière que les runners CI de GitHub exécutent les étapes d’une action.
C’est particulièrement utile pour les actions de configuration de langages comme setup-python, setup-node et setup-go, qui gèrent automatiquement les versions et la configuration du PATH.
Syntaxe
uses à la section initialize de votre blueprint :
Une étape doit spécifier soit
run (une commande shell), soit uses (une action), mais pas les deux.Format de référence d’action
github.com/ et le suffixe @<ref> sont tous deux obligatoires. La ref est généralement un tag de version comme v5.
Exemples :
Transmission des paramètres d’entrée
with pour transmettre des paramètres d’entrée à l’action. Toutes les valeurs sont traitées comme des chaînes de caractères, conformément au comportement de GitHub Actions :
Définir des variables d’environnement
env pour définir des variables d’environnement dont le périmètre est limité à une seule étape d’action :
GITHUB_ENV ou GITHUB_PATH) sont automatiquement transmises aux étapes suivantes du blueprint.
Exemples
Projet Python avec une version spécifique
Projet multilingue
Mélanger des actions et des commandes shell
Projet Java avec Gradle
Actions ou scripts shell
- Avec GitHub Actions
- Script shell équivalent
Fonctionnement
uses lors d’un build du snapshot :
- Télécharge le dépôt de l’action (clone superficiel de la référence épinglée)
- Lit les métadonnées
action.ymlde l’action afin de déterminer le type d’action (runs.using) et les points d’entrée - Construit l’environnement d’exécution avec les variables
INPUT_*,GITHUB_*etRUNNER_* - Exécute l’action selon son type :
- Actions Node.js — exécute le script
pre(s’il est défini), puismain - Actions composites — exécute chaque étape de
runs.stepsdans l’ordre, y compris les étapesrunetusesimbriquées - Actions Docker — construit l’image à partir du
Dockerfilede l’action (ou récupère une imagedocker://), puis exécute le container, y comprispre-entrypoints’il est défini
- Actions Node.js — exécute le script
- Propage les effets de bord — toutes les entrées écrites dans
GITHUB_PATHouGITHUB_ENVpar l’action sont appliquées aux étapes de blueprint suivantes
Les actions s’exécutent en dehors d’un véritable workflow GitHub. Les variables de contexte comme
github.repository sont renseignées avec des valeurs factices. Les actions qui nécessitent un accès direct à l’API GitHub (p. ex., commenter des pull requests, créer des releases) ne fonctionneront pas dans les blueprints.Limitations
-
Types d’actions pris en charge — Les blueprints prennent en charge ces types d’actions (
runs.using) : -
Pas dans
maintenance— Les étapesusess’exécutent dansinitializeetpost-build, mais ne peuvent pas s’exécuter dansmaintenance. Voir Syntaxe. -
Pas de phase
post— Devin exécute les étapespreetmain(ainsi que lepre-entrypointd’une action Docker), mais ignore les étapes de nettoyagepost(postetpost-entrypoint), car les builds s’exécutent dans des VM temporaires. - Contexte GitHub simulé — Les actions qui s’appuient sur des appels d’API GitHub, des données d’événement de workflow ou le contexte du dépôt peuvent ne pas fonctionner correctement, car ces valeurs sont factices dans l’environnement de build.
-
Figez vos versions — Utilisez toujours un tag de version spécifique (p. ex.,
@v5) plutôt qu’un nom de branche afin d’obtenir des builds reproductibles.

