initialize de tu blueprint. Devin descarga y ejecuta la acción durante la compilación de instantánea, igual que los runners de CI de GitHub ejecutan los pasos de una acción.
Esto es especialmente útil para acciones de configuración de lenguajes como setup-python, setup-node y setup-go, que gestionan automáticamente las versiones y la configuración de PATH.
Sintaxis
uses a la sección initialize de tu blueprint:
Un paso debe especificar
run (un comando de shell) o uses (una acción), no ambos.Formato de referencia para acciones
github.com/ y el sufijo @<ref> son obligatorios. La ref suele ser una etiqueta de versión como v5.
Ejemplos:
Pasar parámetros de entrada
with para pasar parámetros de entrada a la acción. Todos los valores se tratan como cadenas, de acuerdo con el comportamiento de GitHub Actions:
Configurar variables de entorno
env para definir variables de entorno con ámbito de un único paso de acción:
GITHUB_ENV o GITHUB_PATH) se propagan automáticamente a los pasos siguientes del blueprint.
Ejemplos
Proyecto en Python con una versión específica
Proyecto multilingüe
Combinar acciones y comandos de shell
Proyecto de Java con Gradle
Acciones vs. scripts de shell
- Con GitHub Actions
- Script de shell equivalente
Cómo funciona
uses durante una compilación de instantánea:
- Descarga el repositorio de la acción (clonado superficial en la referencia fijada)
- Lee los metadatos
action.ymlde la acción para determinar el tipo de acción (runs.using) y los puntos de entrada - Construye el entorno de ejecución con las variables
INPUT_*,GITHUB_*yRUNNER_* - Ejecuta la acción según su tipo:
- Acciones de Node.js: ejecuta el script
pre(si está definido) y luegomain - Acciones compuestas: ejecuta cada paso de
runs.stepsen orden, incluidos los pasos anidadosrunyuses - Acciones de Docker: compila la imagen a partir del
Dockerfilede la acción (o descarga una imagendocker://) y luego ejecuta el contenedor, incluidopre-entrypointsi está definido
- Acciones de Node.js: ejecuta el script
- Propaga los efectos secundarios: cualquier entrada que la acción escriba en
GITHUB_PATHoGITHUB_ENVse aplica a los pasos posteriores del blueprint
Las acciones se ejecutan fuera de un workflow real de GitHub. Las variables de contexto como
github.repository se rellenan con valores simulados. Las acciones que requieren acceso en tiempo real a la API de GitHub (p. ej., comentar en PR o crear versiones) no funcionarán en blueprints.Limitaciones
-
Tipos de acción admitidos — Los blueprints admiten estos tipos de acción (
runs.using): -
No en
maintenance— Los pasosusesse ejecutan eninitializeypost-build, pero no pueden ejecutarse enmaintenance. Consulta Sintaxis. -
Sin ciclo de vida
post— Devin ejecuta los pasospreymain(y elpre-entrypointde una acción de Docker), pero omite los pasos de limpiezapost(postypost-entrypoint), ya que las compilaciones se ejecutan en máquinas virtuales efímeras. - Contexto de GitHub simulado — Es posible que las acciones que dependen de llamadas a la API de GitHub, datos de eventos del workflow o el contexto del repositorio no funcionen correctamente, porque estos valores son marcadores de posición en el entorno de compilación.
-
Fija tus versiones — Haz referencia siempre a una etiqueta de versión específica (p. ej.,
@v5) en lugar de a un nombre de rama para lograr compilaciones reproducibles.

