2016-12-20 4 views
0

Одно из заданий на нашем сервере Jenkins находится в патологическом состоянии: оно существует, но, по-видимому, не имеет каталога .git. Поскольку он существует, Дженкинс пытается получить содержимое репозитория git. Поскольку нет каталога .git, git fetch терпит неудачу.Как найти рабочее пространство Jenkins для конкретной сборки

Я попытался изменить задание Jenkinsfile, чтобы напечатать текущий рабочий каталог, но, конечно, ошибка возникает до того, как файл Jenkins доступен, так что это был бюст.

This question, похоже, задает аналогичный вопрос, но никто не имеет ответа. Если бы я знал, где это место, я мог бы удалить его и сбросить задание, но, увы, я этого не делаю. Вы?

ответ

0

Вот ответ от одного из моих коллег. Я думаю, что это позор, который мы не могли найти более простым способом ...

............................ .......................................

Относительно «сломанного» рабочего пространства: идея состоит в том, чтобы найти git repo, который Дженкинс клонировал и запустить ту же команду, что и он, чтобы увидеть, можем ли мы воспроизвести ошибку.

Во-первых, мы использовали команду find, чтобы найти все .git каталогов - все они имеют неясные имена, такие как ./workspace/e-HFILH6E7MVL5MF6FEZA6572YMZOIT565G7OEWHB73HGZLG2QQUUQ/.git. Затем мы использовали команду git remote -v в родительском каталоге, чтобы сообщить нам, какие пульты, которые были у git repo. find может делать все это для нас:

find . -type d -iname "*.git" -print -exec git -C {}/.. remote -v \; 2>&1 | tee /tmp/find.log 

, который производит вывод так:

./workspace/p-ONR7CFBI45A4F2W4OKRGITOA37ZR2W6JLDBTTDNH5YQHODMJJIDA/.git 
origin https://github.com/bmlltech/baysinf.git (fetch) 
origin https://github.com/bmlltech/baysinf.git (push) 
origin1 https://github.com/bmlltech/baysinf.git (fetch) 
origin1 https://github.com/bmlltech/baysinf.git (push) 
./workspace/[email protected]/.git 
origin https://github.com/bmlltech/market_impact.git (fetch) 
origin https://github.com/bmlltech/market_impact.git (push) 
origin1 https://github.com/bmlltech/market_impact.git (fetch) 
origin1 https://github.com/bmlltech/market_impact.git (push) 

Затем мы использовали некоторые из @ Дэйва ВИМ-фу, чтобы найти выходной файл для каждой строки, которая последовала другой строкой, содержащей tickdata. Это дало нам список имен каталогов, таких как ./workspace/[email protected]/.git

Наконец, мы побежали git status в каждом из родительских каталогов, все из которых вернули ОК, кроме одного. В этом мы выполнили команду, с которой Дженкинс столкнулся с проблемой, и у нас также была такая же ошибка! (отредактировано)

Исправление было тогда вручную удалить все файлы в этой «плохой» директории. Похоже, все работает сейчас.

Смежные вопросы