Referência rápida da sintaxe e do comportamento de environment.yaml. Para conceitos e guias, consulte Configuração do ambiente.
| Campo | Tipo | Obrigatório | Executado durante | Descrição |
|---|
initialize | string ou lista | Não | Apenas no build | Comandos de configuração executados uma única vez. Os resultados são salvos na imagem da máquina. Deve ser idempotente. |
maintenance | string ou lista | Não | Build + início da sessão | Comandos recorrentes de dependências. Mantenha-os rápidos e incrementais. |
knowledge | lista de objetos | Não | Nunca (apenas para referência) | Informações carregadas no contexto do Devin no início da sessão. |
| Campo | Tipo | Obrigatório | Descrição |
|---|
name | string | Não | Rótulo legível exibido nos build logs. Facilita a identificação de falhas. |
run | string | Não | Comando(s) de shell a executar. Há suporte a strings com várias linhas. Etapas sem run são puladas. |
Campos de uma entrada do Knowledge
| Campo | Tipo | Obrigatório | Descrição |
|---|
name | string | Sim | Identificador (por exemplo, test, lint, startup, architecture, notes). |
contents | string | Sim | O conteúdo de referência. Não é executado como comandos. |
- Os comandos são executados em bash com
set -e ativado — se qualquer linha falhar, a etapa é interrompida imediatamente.
- Os comandos específicos do repo são executados a partir da raiz do repo (
~/repos/<repo-name>). Os comandos do Enterprise e em nível da organização são executados a partir do diretório home (~).
- Cada etapa no formato expandido é executada em seu próprio contexto de shell.
| Escopo | Tempo limite |
|---|
| Comando individual | 1 hora |
| Build total | 2 horas |
Boas práticas:
- Use subshells para comandos em subdiretórios:
(cd packages/frontend && npm install).
- Prefira instalações incrementais em
maintenance (por exemplo, npm install em vez de npm ci).
- Evite comandos de build (
npm run build, make) em maintenance — eles são executados em todas as sessões.
- Adicione as flags
-y para evitar prompts interativos: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y.
- Os comandos devem ser seguros para executar várias vezes —
maintenance é executado em todas as sessões.
A imagem base do Devin (Ubuntu 22.04, x86_64) inclui estas ferramentas. Você não precisa instalá-las.
| Categoria | Incluído |
|---|
| Linguagens | Node.js (via nvm), Python 3.12 (via pyenv, com 3.9–3.11 também disponível), Rust (via rustup), Java (OpenJDK 17), Scala, Go |
| Gerenciadores de pacotes | npm, yarn, pnpm, pip, cargo |
| Controle de versão | git, gh (GitHub CLI), git-lfs |
| Contêineres | Docker (com plugin Compose — use docker compose, não docker-compose) |
| Ferramentas de build | make, build-essential (gcc, g++) |
| Utilitários | curl, wget, jq, ripgrep, direnv, awscli, ffmpeg, Homebrew, OpenVPN |
| Navegadores | Chrome (para testing no navegador) |
Esta lista pode não ser exaustiva. Execute which <tool> ou <tool> --version em uma sessão do Devin para verificar. Se algo estiver faltando, instale-o na sua seção initialize.
| Termo | Definição |
|---|
| Configuração | Uma configuração de ambiente salva (o conteúdo YAML). Cada repo/org/enterprise tem a sua própria. |
| Versão da configuração | Uma revisão específica de uma configuração. Cada salvamento cria uma nova versão. |
| Build | O processo de executar sua configuração para criar uma imagem da máquina. |
| Imagem da máquina | O ambiente salvo criado por um build bem-sucedido. As sessões são inicializadas a partir da imagem bem-sucedida mais recente. |
| Configurado | Um repositório com configuração YAML explícita (initialize/maintenance/knowledge). |
| Incluído | Um repositório clonado na imagem da máquina, mas sem configuração personalizada. |
| Disponível | Um repositório acessível à org, mas não adicionado ao ambiente. |
| $ENVRC | Um arquivo especial para definir variáveis de ambiente. Semelhante ao $GITHUB_ENV do GitHub Actions. |
| Sucesso parcial | Um build em que a parte principal foi bem-sucedida, mas algumas configurações no nível do repositório falharam. |