cwrsync не работает под Jenkins

Я использую cwrsync с нотацией cygdrive для обозначения дисков. В обычном cmd (или командном файле) он работает отлично, но когда внутри среды jenkins используется bat-файл с вызовом rsync (я имею в виду, когда jenkins slave запускает этот bat-файл), rsync выдает следующие ошибки:

rsync: change_dir "/cygdrive/q/build" failed: No such file or directory (2)

В каком направлении мне копать?

PS. версия rsync - 3.1.1, в комплекте - cygwin 1.7.32; на windows server 2012.

UPD. Q относится к подключенному к сети диску.

1 ответ

Решение

Я понял, что сетевые диски в Windows связаны с пользователями. И до тех пор, пока jenkins не использует обычного пользователя, с которым вы работаете - он не увидит подключенные к сети диски, если они каким-то образом не видны глобально.

Итак, решение состоит в том, чтобы автоматически выполнить команду для сопоставления сетевого диска как пользователя SYSTEM (который используется jenkins): для этой цели я создал bat-файл, который выполняет следующее:

net use Q: \\host\sharename /persistent:no

и запустить его от пользователя SYSTEM с помощью запланированной задачи (вызванной доступностью сети) - см. этот вопрос.

ПРИМЕЧАНИЕ: /persistent:yes по какой-то причине не работает.

Другие вопросы по тегам