#build #jenkins
#сборка #дженкинс
Вопрос:
Я пытаюсь скопировать файлы в сетевой каталог во время сборки, и я продолжаю получать сообщение об ошибке «Такого файла или каталога нет».
Копирование на локальный диск работает нормально:
cp -Rf c:/Jenkins/deployments/TW_ISSUE_A/src c:/Jenkins/deployments/TW_ISSUE_A/target
Все следующие выдают одно и то же сообщение:
cp -Rf c:/Jenkins/deployments/TW_ISSUE_A/src H:/some_dir
cp -Rf c:/Jenkins/deployments/TW_ISSUE_A/src H:some_dir
cp -Rf c:/Jenkins/deployments/TW_ISSUE_A/src //Hubbell/MISGenl/some_dir
cd c:/Jenkins/deployments/TW_ISSUE_A/src
rsync -avuzb //Hubbell/MISGenl/Projects/Tronweb/TronwebBuilds/test/ora/sql/
cp -Rf c:/Jenkins/deployments/TW_ISSUE_A/src /cygdrive/h/some_dir
Я даже создал сценарий оболочки для вызова из Дженкинса, но я продолжаю получать это сообщение.
#!/bin/bash
url="http://as-test02:8080/job/TW_ISSUE_A_BUILD/lastSuccessfulBuild/artifact/bui
ld-TW_ISSUE_A_BUILD.tar";
remote_stage_dir="/cygdrive/h/some_dir"
#fetch the artifacts
(cd "$remote_stage_dir" amp;amp; wget "$url" amp;amp; tar xvf build-TW_ISSUE_A_BUILD.tar dat
java ora amp;amp; rm -rf *.tar amp;amp; cp -r ./ora/* ../INTEGRATION)
Есть ли какой-либо способ скопировать файлы на подключенный диск на компьютере сборки?
Спасибо!!
Ответ №1:
Я бы предположил, что подключенный диск недоступен в контексте служб или что пользователь, выполняющий Jenkins, не имеет к нему доступа. От имени какого пользователя работает Дженкинс?
Редактировать: Я думаю, что ваша проблема имеет два аспекта:
- Пользователю, запускающему службу Jenkins, не разрешено подключаться к сети.
h:
пользователю это неизвестно.
Если вы его не модифицировали, служба, скорее всего, запущена под учетной записью LocalSystem. Вы можете изменить это, запустив services.msc
(или перейдя к службам через панель управления Windows) и найдя jenkins
службу. Это должно решить первую проблему.
Вторую проблему можно решить, используя пути UNC (как вы пробовали выше) вместо сетевых дисков.
В Jenkins wiki есть статья о подобных проблемах: Мое программное обеспечение создается на моем компьютере, но не на Jenkins
Комментарии:
1. Дженкинс запущен на сервере виртуальной машины — я (trandal) вошел в систему при запуске службы. Я не говорил этого выше, но я могу использовать любые / all команды (и запускать скрипт), когда я нахожусь на сервере. Я собираюсь пойти посмотреть это — не уверен, что вы подразумеваете под «контекстом служб»
2. Большое вам спасибо за разъяснение! Я обновил Jenkins для запуска под именем пользователя, а также сопоставил диск по ссылке Jenkins wiki. Еще раз спасибо!!