A alternância de diretórios sob a tarefa rake falha ao carregar o gemset do novo diretório

0

Dentro do contexto de uma tarefa rake, estou tentando cd em um diretório irmão do qual gostaria de invocar outra tarefa rake. No entanto, parece que o gemset para o segundo diretório não está carregado. A estrutura de diretórios de um nível superior é semelhante a:

2.2.1@DirOne
    - 2.2.1 Gems ...
2.2.3@DirTwo
    - 2.2.3 Gems ...

Quando executado no contexto de DirOne , o rake tenta cd em DirTwo para executar uma tarefa de rake específica para DirTwo . No entanto, o rake é anulado na segunda tarefa do rake, uma vez que se queixa do seguinte erro:

LoadError: cannot load such file -- ci/reporter/rake/rspec

No erro, ci/reporter/rake/rspec é uma gem que pertence a 2.2.3@DirTwo . Pode haver uma maneira de executar o seguinte no contexto de DirOne em uma tarefa de rake?

cd ../DirTwo && rvm use 2.2.3@DirTwo && rake something_specific_to_DirTwo

O que eu tentei

Usando IO.popen(source ./script_to_run_the_above.sh) e IO.popen(#{above_command} 2>&1 para despejar a saída. Eu também tentei usar FileUtils.cd para criar um bloco para executar o script acima dentro do contexto do cd filepath, mas tudo isso não faz nada (sem erro), ou lança o LoadError .

Pensamentos

Pode ser porque não estou executando dentro do contexto de um shell de login / interativo? Eu tentei /bin/bash --login , mas parece que não fez diferença.

    
por Xenyal 24.01.2018 / 21:32

0 respostas

Tags