Дженкинс копирует каталоги / файлы в сборке

#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, не имеет к нему доступа. От имени какого пользователя работает Дженкинс?

Редактировать: Я думаю, что ваша проблема имеет два аспекта:

  1. Пользователю, запускающему службу Jenkins, не разрешено подключаться к сети.
  2. h: пользователю это неизвестно.

Если вы его не модифицировали, служба, скорее всего, запущена под учетной записью LocalSystem. Вы можете изменить это, запустив services.msc (или перейдя к службам через панель управления Windows) и найдя jenkins службу. Это должно решить первую проблему.

Вторую проблему можно решить, используя пути UNC (как вы пробовали выше) вместо сетевых дисков.

В Jenkins wiki есть статья о подобных проблемах: Мое программное обеспечение создается на моем компьютере, но не на Jenkins

Комментарии:

1. Дженкинс запущен на сервере виртуальной машины — я (trandal) вошел в систему при запуске службы. Я не говорил этого выше, но я могу использовать любые / all команды (и запускать скрипт), когда я нахожусь на сервере. Я собираюсь пойти посмотреть это — не уверен, что вы подразумеваете под «контекстом служб»

2. Большое вам спасибо за разъяснение! Я обновил Jenkins для запуска под именем пользователя, а также сопоставил диск по ссылке Jenkins wiki. Еще раз спасибо!!