Skip to content
Latchkey

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.

Persisting a variable
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=value anexadas persistem para steps posteriores.
  • Ele substitui o comando obsoleto ::set-env::.

Guias relacionados