Jenkins – Git plugin не создает локальный подкаталог для репо при запуске CI

У меня есть настройка Jenkins с использованием git и использование github-крючка для непрерывной интеграции. Я использую пользовательский каталог рабочей области. При управлении исходным кодом я использую Git. Я только проверяю основную ветку, и у меня есть $ GIT_BRANCH- $ GIT_COMMIT как место моего каталога в поле «Local subdirectory for repo (optional)». В разделе сборки я запускаю оболочку, где я выполняю:

- pwd - ls - cd $GIT_BRANCH-$GIT_COMMIT - ... 

Проблема, которую я получаю, – это выполнить «cd $ GIT_BRANCH- $ GIT_COMMIT». Я получаю следующую ошибку:

 - /tmp/hudson7624299777846840848.sh: 4: cd: can't cd to master-9297429dba145737291168f284796421f73c0ee3 

В pwd я попал в правильный каталог. ls не показывает каталог как созданный, поэтому я получаю эту ошибку. После того, как сборка завершилась неудачно, я проверил узел сборки, чтобы убедиться, что клон был выполнен, и каталог был создан. Кажется, нет. Однако, когда я выполняю сборку вручную, сборка проходит. ls показывает каталог.

Любое понимание того, почему это происходит, было бы весьма полезно. Моя цель здесь – создать новый каталог с самым последним источником для каждой сборки, чтобы я мог поддерживать историю тестов, метрик и т. Д. Я новичок в Jenkins, поэтому, если есть лучший способ сделать это, я открыт к предложениям.

Ваши переменные могут быть разрешены с использованием следующего синтаксиса в поле настраиваемого каталога рабочей области

 ${GIT_BRANCH}-${GIT_COMMIT} 

Раньше я сталкивался с подобной проблемой. Мои попытки использовать псевдоним команды Linux в поле «Пользовательский каталог рабочей области» не были успешными.

Я выделим дополнительный вариант: если требуется архивирование, вы можете указать ./recent как каталог рабочей области и добавить серию команд после сборки. Например:

 MMMDD=`date +%b%d` cp -R ./recent ./$MMMDD