O Que É o Ambiente de um Processo? Configurações Herdadas
O ambiente de um processo é a coleção de variáveis de ambiente que um programa carrega, herdadas do processo pai quando ele foi iniciado.
Todo processo roda dentro de um ambiente: um conjunto de variáveis nomeadas que recebeu quando foi lançado. Esse ambiente é como a configuração flui do shell para os programas que ele roda, e do shell de uma etapa de CI para as ferramentas que ela invoca. Entender a herança explica por que algumas variáveis são visíveis e outras não.
O que é o ambiente
O ambiente é uma lista de pares chave-valor anexada a um processo. Quando um processo inicia um filho, o filho recebe uma cópia. Essa semântica de snapshot significa que mudanças posteriores no pai não alcançam um filho já em execução.
Como a herança funciona
Um filho recebe uma cópia das variáveis exportadas do pai no momento do lançamento. As mudanças que o filho faz permanecem locais a ele. É por isso que uma variável definida dentro de um subprocesso não aparece de volta no shell que o lançou.
Inspecionando o ambiente
envouprintenvlista todas as variáveis de ambiente.exportsem argumentos mostra as variáveis de shell exportadas.- Um programa lê seu ambiente através da API da linguagem.
Exportadas versus locais
Apenas variáveis exportadas entram no ambiente passado aos filhos. Uma variável de shell comum é visível no shell atual mas não é herdada, o que é uma fonte frequente de confusão do tipo "por que a ferramenta não vê minha variável".
O ambiente em CI
CI constrói o ambiente de cada etapa a partir de variáveis da plataforma, suas variáveis configuradas e segredos. Como cada etapa é um processo novo, mudanças de ambiente não persistem automaticamente; você escreve em um arquivo especial para carregar valores para etapas posteriores.
Ambientes consistentes em runners gerenciados
Nos runners da Latchkey, cada etapa recebe um ambiente limpo e definido, então os builds são reproduzíveis. Para compartilhar um valor entre etapas, escreva-o no arquivo de ambiente da plataforma em vez de depender da herança, que só flui para baixo dentro de uma etapa.
Principais conclusões
- O ambiente de um processo é o conjunto de variáveis herdadas do pai.
- Filhos recebem uma cópia no lançamento; suas mudanças não fluem de volta para cima.
- Em CI, cada etapa é um processo novo, então persista valores via o arquivo de env.