Saltar al contenido principal
Referencia rápida de la sintaxis y el comportamiento de environment.yaml. Para ver conceptos y guías, consulta Configuración de Environment.

Referencia de campos

Campos de nivel superior

CampoTipoObligatorioEjecutado duranteDescripción
initializecadena o listaNoSolo en la compilaciónComandos de configuración únicos. Los resultados se guardan en la imagen de la máquina. Deben ser idempotentes.
maintenancecadena o listaNoCompilación + inicio de la sesiónComandos recurrentes de dependencias. Deben ser rápidos e incrementales.
knowledgelista de objetosNoNunca (solo referencia)Información que se carga en el contexto de Devin al inicio de la sesión.

Campos de Step (forma expandida)

CampoTipoObligatorioDescripción
namestringNoEtiqueta legible para humanos que se muestra en los registros de compilación. Facilita la identificación de fallos.
runstringNoComando(s) de shell que se ejecutarán. Se admiten cadenas de varias líneas. Los Step sin run se omiten.

Campos de la entrada de Knowledge

CampoTipoObligatorioDescripción
namestringIdentificador (p. ej., test, lint, startup, architecture, notes).
contentsstringContenido de referencia. No se ejecuta como si fueran comandos.

Detalles de ejecución

  • Los comandos se ejecutan en bash con set -e activado; si alguna línea falla, el paso se detiene de inmediato.
  • Los comandos específicos del repositorio se ejecutan desde la raíz del repositorio (~/repos/<repo-name>). Los comandos de Enterprise y de toda la organización se ejecutan desde el directorio personal (~).
  • Cada paso de la forma expandida se ejecuta en su propio contexto de shell.
ÁmbitoTiempo de espera
Comando individual1 hora
Compilación total2 horas
Buenas prácticas:
  • Use subshells para comandos en subdirectorios: (cd packages/frontend && npm install).
  • Prefiera las instalaciones incrementales en maintenance (por ejemplo, npm install en lugar de npm ci).
  • Evite los comandos de compilación (npm run build, make) en maintenance; se ejecutan en cada sesión.
  • Agregue indicadores -y para evitar prompts interactivos: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y.
  • Los comandos deben poder ejecutarse de forma segura varias veces; maintenance se ejecuta en cada sesión.

Herramientas preinstaladas

La imagen base de Devin (Ubuntu 22.04, x86_64) incluye estas herramientas. No necesitas instalarlas.
CategoríaIncluye
LenguajesNode.js (a través de nvm), Python 3.12 (a través de pyenv, con las versiones 3.9–3.11 también disponibles), Rust (a través de rustup), Java (OpenJDK 17), Scala, Go
Gestores de paquetesnpm, yarn, pnpm, pip, cargo
Control de versionesgit, gh (CLI de GitHub), git-lfs
ContenedoresDocker (con el complemento Compose: usa docker compose, no docker-compose)
Herramientas de compilaciónmake, build-essential (gcc, g++)
Utilidadescurl, wget, jq, ripgrep, direnv, awscli, ffmpeg, Homebrew, OpenVPN
NavegadoresChrome (para pruebas en navegador)
Puede que esta lista no sea exhaustiva. Ejecuta which <tool> o <tool> --version en una sesión de Devin para comprobarlo. Si falta algo, instálalo en la sección initialize.

Glosario

TérminoDefinición
ConfiguraciónUna configuración de entorno guardada (el contenido YAML). Cada repo/org/empresa tiene la suya.
Versión de configuraciónUna revisión específica de una configuración. Cada vez que se guarda, se crea una nueva versión.
CompilaciónEl proceso de ejecutar tu configuración para crear una imagen de la máquina.
Imagen de la máquinaEl entorno guardado creado por una compilación exitosa. Las sesiones se inician a partir de la imagen exitosa más reciente.
ConfiguradoUn repositorio con una configuración YAML explícita (initialize/maintenance/Knowledge).
IncluidoUn repositorio clonado en la imagen de la máquina, pero sin configuración personalizada.
DisponibleUn repositorio accesible para la org, pero no agregado al entorno.
$ENVRCUn archivo especial para configurar variables de entorno. Similar a $GITHUB_ENV de GitHub Actions.
Éxito parcialUna compilación en la que la parte principal se completó correctamente, pero algunas configuraciones a nivel de repositorio fallaron.

Próximos pasos