Em vez de escrever scripts de shell para instalar ferramentas, você pode usar GitHub Actions diretamente nas seçõesDocumentation 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 ou maintenance do seu blueprint. O Devin baixa e executa a action durante a build do snapshot, da mesma forma que os runners de CI do GitHub executam etapas de action.
Isso é especialmente útil para actions de configuração de linguagens, como setup-python, setup-node e setup-go, que cuidam automaticamente do gerenciamento de versões e da configuração do PATH.
Sintaxe
uses em qualquer seção do seu blueprint:
| Campo | Tipo | Descrição |
|---|---|---|
name | string (optional) | Rótulo legível exibido nos logs de build |
uses | string | Referência de GitHub Action (veja o formato abaixo) |
with | map (optional) | Parâmetros de entrada passados para a ação |
env | map (optional) | Variáveis de ambiente extras para a etapa |
Uma etapa deve especificar
run (um comando de shell) ou uses (uma ação), não ambos.Formato de referência de ações
github.com/ e o sufixo @<ref> são obrigatórios. A ref normalmente é uma tag de versão, como v5.
Exemplos:
| Referência | No que ela resulta |
|---|---|
github.com/actions/setup-python@v5 | actions/setup-python na tag v5 |
github.com/actions/setup-node@v4 | actions/setup-node na tag v4 |
github.com/gradle/actions/setup-gradle@v4 | repo gradle/actions, subdiretório setup-gradle, tag v4 |
Fornecendo entradas
with para fornecer entradas para a GitHub Action. Todos os valores são tratados como strings, de acordo com o comportamento do GitHub Actions:
Definir variáveis de ambiente
env para definir variáveis de ambiente válidas apenas para uma única etapa de ação:
GITHUB_ENV ou GITHUB_PATH) são propagadas automaticamente para as etapas subsequentes do blueprint.
Exemplos
Projeto em Python com uma versão específica
Projeto multilíngue
Combinando ações com comandos de shell
Projeto Java com Gradle
Actions vs. scripts de shell
- Com GitHub Actions
- Script de shell equivalente
Como funciona
uses durante uma build do snapshot:
- Baixa o repositório da action (clone superficial na ref fixada)
- Lê os metadados
action.ymlda action para determinar o runtime e os pontos de entrada - Monta o ambiente de execução com as variáveis
INPUT_*,GITHUB_*eRUNNER_* - Executa a etapa
preda action (se definida) e, em seguida, o ponto de entradamain - Propaga os efeitos colaterais — todas as entradas gravadas em
GITHUB_PATHouGITHUB_ENVpela action são aplicadas às etapas subsequentes do blueprint
As actions são executadas fora de um workflow real do GitHub. Variáveis de contexto como
github.repository são preenchidas com valores simulados. Actions que exigem acesso ativo à API do GitHub (por exemplo, comentar em PRs ou criar releases) não funcionarão em blueprints.Limitações
- Apenas GitHub Actions em Node.js — Somente GitHub Actions que usam um runtime Node.js (
node16,node20,node24) são suportadas. Actions baseadas em Docker e actions compostas não são suportadas. - Sem ciclo de vida
post— O Devin executa as etapaspreemain, mas pula as etapas de limpezapost, já que os builds são executados em VMs descartáveis. - Contexto simulado do GitHub — Actions que dependem de chamadas à API do GitHub, dados de eventos do workflow ou contexto do repositório podem não funcionar corretamente, porque esses valores são placeholders no ambiente de build.
- Fixe suas versões — Sempre faça referência a uma tag de versão específica (por exemplo,
@v5) em vez de um nome de branch para builds reproduzíveis.
