initialize do seu blueprint. O Devin baixa e executa a GitHub Action durante a build do snapshot, da mesma forma que os runners de CI do GitHub executam etapas de GitHub Action.
Isso é especialmente útil para GitHub 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 na seção initialize do seu blueprint:
Uma etapa deve especificar
run (um comando de shell) ou uses (uma GitHub Action), 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:
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 GitHub Action (clone superficial na ref fixada)
- Lê os metadados
action.ymlda GitHub Action para determinar o tipo de GitHub Action (runs.using) e os pontos de entrada - Monta o ambiente de execução com as variáveis
INPUT_*,GITHUB_*eRUNNER_* - Executa a GitHub Action conforme seu tipo:
- GitHub Actions em Node.js — executa o script
pre(se definido) e, em seguida, omain - GitHub Actions compostas — executa cada etapa de
runs.stepsem ordem, incluindo etapasruneusesaninhadas - GitHub Actions em Docker — cria a imagem a partir do
Dockerfileda GitHub Action (ou baixa uma imagemdocker://) e então executa o contêiner, incluindo opre-entrypoint, se definido
- GitHub Actions em Node.js — executa o script
- Propaga os efeitos colaterais — todas as entradas gravadas em
GITHUB_PATHouGITHUB_ENVpela GitHub Action são aplicadas às etapas subsequentes do blueprint
As GitHub Actions são executadas fora de um workflow real do GitHub. Variáveis de contexto como
github.repository são preenchidas com valores simulados. GitHub Actions que exigem acesso ativo à API do GitHub (por exemplo, comentar em PRs ou criar releases) não funcionarão em blueprints.Limitações
-
Tipos de GitHub Action suportados — Blueprints suportam estes tipos de GitHub Action (
runs.using): -
Não em
maintenance— Etapasusessão executadas eminitializeepost-build, mas não podem ser executadas emmaintenance. Veja Sintaxe. -
Sem ciclo de vida
post— O Devin executa as etapaspreemain(e opre-entrypointde uma GitHub Action Docker), mas pula as etapas de limpezapost(postepost-entrypoint), já que os builds são executados em VMs descartáveis. - Contexto simulado do GitHub — 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.

