O Que É o Arquivo GITHUB_ENV no GitHub Actions?
GITHUB_ENV aponta para um arquivo. Escrever NAME=value nele define uma variável de ambiente para todos os steps posteriores no job.
Uma variável que você faz export em um step desaparece no próximo, porque cada run é um shell novo. O arquivo GITHUB_ENV é o mecanismo do GitHub para persistir variáveis de ambiente entre steps em um job.
O que é
Uma variável de ambiente que contém um caminho de arquivo. Anexar linhas NAME=value a esse arquivo diz ao GitHub para definir essas variáveis no ambiente de cada step subsequente.
steps:
- run: echo "BUILD_ID=${{ github.run_id }}" >> "${GITHUB_ENV}"
- run: echo "Building $BUILD_ID"Como funciona
Depois que um step termina, o GitHub lê as linhas anexadas e as injeta como variáveis de ambiente para os steps restantes. Valores multilinha usam um delimitador no estilo heredoc.
GITHUB_ENV vs GITHUB_OUTPUT
GITHUB_ENV define variáveis de ambiente lidas como $NAME; GITHUB_OUTPUT define step outputs lidos pelo contexto steps. Use env para variáveis de shell, outputs para dados de expressões.
Por que importa
É a forma suportada de compartilhar estado entre steps, substituindo o comando obsoleto ::set-env::. Conhecê-lo evita a clássica confusão "minha variável exportada desapareceu".
Conceitos relacionados
Ele é paralelo a GITHUB_OUTPUT para step outputs e a GITHUB_STEP_SUMMARY para resumos de job, todos arquivos especiais aos quais os steps anexam conteúdo.
Principais conclusões
GITHUB_ENVé um caminho de arquivo para definir env vars.- Linhas
NAME=valueanexadas persistem para steps posteriores. - Ele substitui o comando obsoleto
::set-env::.