Skip to content
Latchkey

O Que É um Diretório de Trabalho? A Pasta Atual do Shell

O diretório de trabalho (ou diretório atual) é a pasta que um processo trata como sua localização, a base contra a qual caminhos relativos são resolvidos.

Todo processo tem um diretório de trabalho atual, a pasta em que ele está. Caminhos relativos como ./build são interpretados a partir dela. No CI, o diretório de trabalho importa muito: ele determina onde estão os seus arquivos e pode resetar entre steps, o que surpreende scripts que assumem que ele permaneceu no mesmo lugar.

O que é o diretório de trabalho

É o diretório que um processo considera atual. Um caminho relativo como src/index.js é resolvido juntando-o ao diretório de trabalho. Cada processo tem o seu, herdado do pai.

Inspecionando e alterando

O comando pwd imprime o diretório de trabalho atual, e cd o altera. Como o cd afeta apenas o shell atual, uma mudança em um processo não altera outro.

Por que importa

  • Caminhos relativos dependem inteiramente dele.
  • Um diretório de trabalho errado causa erros de "arquivo não encontrado".
  • Um cd dentro de um subshell não persiste para o pai.

Relativo versus absoluto

Caminhos absolutos ignoram o diretório de trabalho; caminhos relativos dependem dele. Scripts que precisam ser robustos frequentemente calculam um caminho base absoluto de antemão para evitar surpresas.

Diretório de trabalho no CI

O CI executa cada step em um diretório de trabalho definido, frequentemente a raiz do repositório. Um cd em um step não é levado ao próximo, porque cada step é um shell novo. Use a configuração working-directory de um step ou caminhos absolutos em vez de depender de um cd anterior.

Caminhos previsíveis em runners gerenciados

Nos runners Latchkey, cada step começa em um diretório de trabalho conhecido. Como mudanças de diretório não sobrevivem entre steps, defina o diretório de trabalho explicitamente por step ou use caminhos absolutos para acesso confiável a arquivos.

Principais conclusões

  • O diretório de trabalho é a pasta que um processo trata como atual.
  • Caminhos relativos resolvem contra ele; um cwd errado causa erros de arquivo não encontrado.
  • No CI, o cwd reseta entre steps, então defina-o por step ou use caminhos absolutos.

Guias relacionados