Estou tentando fazer com que Jenkins recupere osubmodules de um repositório, mas não consigo fazê-lo funcionar. Eu procurei na internet por uma solução, mas a maioria dos problemas está centrada em autenticação, o que não é o problema neste caso. Pelo que eu consegui captar da mensagem de erro, a questão parece estar relacionada a a maneira como o plugin git-client manipula as respostas das ferramentas de linha de comando.
Como nós tivemos o Git for Windows versão 2.6.0 instalado e o plugin Jenkins Git-client "oficialmente" suporta a versão 2.5.0, eu também tentei desinstalar a versão 2.6.0 e instalar a versão 2.5.0, mas isso não fez diferença.
Alguém aqui tem alguma experiência com este problema ou uma solução possível? O erro é:
FATAL: Command "c:Program FilesGitbingit.exe submodule update" returned status code 1:
stdout:
stderr: Cloning into "mysubmodule"...
error: cannot spawn echo : No such file or directory
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for "http://somerepo": No error
Clone of "http://somerepo/scm/bf/mysubmodule.git" into submodule path "mysubmodule" failed
Respostas:
1 para resposta № 1Eu experimentei o mesmo erro, com o mesmoversão do plugin Git e Jenkins Git-client. Parece que isso pode ser uma combinação de um bug e uma configuração incorreta do (s) submódulo (s) no arquivo .gitmodules do repositório principal. E a mensagem de erro definitivamente não é tão útil quanto poderia ser!
No meu caso, o.O arquivo gitmodules no repositório principal continha o caminho absoluto do URL para o submódulo. Isso fez com que o Jenkins não fosse capaz de autenticar corretamente para o submódulo. Mudar o caminho do submódulo para ser relativo (../mysub.git) consertou para mim.
Isso me ajudou bastante: https://issues.jenkins-ci.org/browse/JENKINS-31244
Eu espero que você ache isto útil.