En lugar de escribir scripts de shell para instalar herramientas, puedes hacer referencia directamente a GitHub Actions en las seccionesDocumentation Index
Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
Use this file to discover all available pages before exploring further.
initialize o maintenance 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 cualquier sección de tu blueprint:
| Campo | Tipo | Descripción |
|---|---|---|
name | string (opcional) | Etiqueta legible para humanos que se muestra en los registros de compilación |
uses | string | Referencia de GitHub Action (consulta el formato más abajo) |
with | map (opcional) | Parámetros de entrada que se pasan a la acción |
env | map (opcional) | Variables de entorno adicionales para el paso |
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:
| Referencia | A qué corresponde |
|---|---|
github.com/actions/setup-python@v5 | actions/setup-python en la etiqueta v5 |
github.com/actions/setup-node@v4 | actions/setup-node en la etiqueta v4 |
github.com/gradle/actions/setup-gradle@v4 | repo gradle/actions, subdirectorio setup-gradle, etiqueta v4 |
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 entorno de ejecución y los puntos de entrada - Construye el entorno de ejecución con las variables
INPUT_*,GITHUB_*yRUNNER_* - Ejecuta el paso
prede la acción (si está definido) y luego el punto de entradamain - 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
- Solo acciones de Node.js — Solo se admiten GitHub Actions que usan un entorno de ejecución de Node.js (
node16,node20,node24). No se admiten las acciones basadas en Docker ni las acciones compuestas. - Sin ciclo de vida
post— Devin ejecuta los pasospreymain, pero omite los pasos de limpiezapost, 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.
