Невозможно синхронизировать исходный код с помощью подключаемого модуля perforce для Jenkins.

Я пытаюсь синхронизировать свой исходный код из perforce, используя плагин Perforce Jenkins, и это не удается, вот вывод консоли:

Started by user anonymous
Building in workspace /home/var/.jenkins/jobs/Perforce-Test/workspace
Using master perforce client: Perforce-Test
[workspace] $ /usr/bin/p4 workspace -o Perforce-Test
[workspace] $ /usr/bin/p4 login -a -p
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 workspace -o Perforce-Test
Changing P4 Client View from:
//depot/perf/main/solution/... //Perforce-Test/perf/main/solution/...

Changing P4 Client View to: 
  //depot/perf/main/solution/Main-Code/... //Perforce-Test/perf/main/solution/Main-Code/...
Saving modified client Perforce-Test
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 -s client -i
Last build changeset: 0
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 changes -s submitted -m 1 //Perforce-Test/...
Failed to get last submitted changeset in the view, falling back to change counter. Error was: No output for: /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 changes -s submitted -m 1 //Perforce-Test/... 
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 counter change
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 -s changes -s submitted //Perforce-Test/...@3691614,@3691663
Sync'ing workspace to changelist 3691663 (forcing sync of unchanged files).
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 -s sync -f //Perforce-Test/...@3691663
Caught exception communicating with perforce. Errors encountered while force syncing: error: //Perforce-Test/...@3691663 - protected namespace - access denied.
com.tek42.perforce.PerforceException: Errors encountered while force syncing: error: //Perforce-Test/...@3691663 - protected namespace - access denied.

    at com.tek42.perforce.parse.Workspaces.syncTo(Workspaces.java:167)
    at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:1126)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
ERROR: Unable to communicate with perforce. Errors encountered while force syncing: error: //Perforce-Test/...@3691663 - protected namespace - access denied.

Finished: FAILURE

Прилагаю скрин своей работы. Может ли кто-нибудь сообщить мне, в чем может быть проблема? Это проблема с моим пользователем? Когда я пытаюсь создать новую рабочую область и синхронизировать последний код с помощью клиента perforce view с тем же пользователем, все работает нормально.

Снимок экрана задания Perforce


person Var    schedule 07.07.2015    source источник
comment
В разделе карты просмотра, возможно, вам нужно сопоставить путь P4 (//depot/perf/...) с локальным путем (например, //workspace/...)?   -  person Bruno Lavit    schedule 07.07.2015
comment
@BrunoLavit Я попробовал упомянутый вами подход, но он все равно не работает с той же ошибкой.   -  person Var    schedule 07.07.2015
comment
Можете ли вы проверить у администраторов P4, в порядке ли таблица разрешений? Ваш главный (или подчиненный) процесс jenkins работает с тем же пользователем, которого вы использовали при тестировании с клиентом P4V?   -  person Bruno Lavit    schedule 07.07.2015
comment
@BrunoLavit Еще раз спасибо за ответ! Могу ли я в любом случае распечатать имя пользователя и пароль p4 во время работы Jenkins? Это должно проверить, использую ли я одного и того же пользователя или нет.   -  person Var    schedule 07.07.2015
comment
Нет pb за помощь :) Думаю, вы можете использовать переменную P4PASSWD и P4USER (perforce.com/perforce/r12.1/manuals/cmdref/_env.html)   -  person Bruno Lavit    schedule 07.07.2015
comment
@BrunoLavit Очень странно, если он использует другого пользователя/пароль. Я указал пользователя и пароль в плагине, а также представил его как переменную среды. Позвольте мне взглянуть на то, на что вы указали.   -  person Var    schedule 07.07.2015
comment
В Windows (в моей предыдущей компании) мы использовали файл p4ticket для хранения токена P4. Я уверен, что этот файл одинаков для платформы Linux.   -  person Bruno Lavit    schedule 07.07.2015


Ответы (1)


Сообщение об ошибке:

//Perforce-Test/...@3691663 - protected namespace - access denied.

указывает, что у вас нет разрешения на файлы, которые вы пытаетесь синхронизировать. Если имя пользователя, которое вы используете, является «анонимным», как следует из вывода, проверьте таблицу защиты, чтобы узнать, есть ли у этого пользователя разрешение на файлы, которые вы пытаетесь синхронизировать (и если есть средства защиты на основе IP, проверьте их против построить IP машины).

Если вы не уверены, под каким именем пользователя Perforce выполняется это задание, быстрым способом проверки может быть удаление клиента «Perforce-Test», так как похоже, что подключаемый модуль создаст его заново (и в этот момент появится имя пользователя). в поле «Владелец» клиента). Вы также можете проверить журнал сервера Perforce, чтобы узнать, какой пользователь выполнял эти команды.

person Samwise    schedule 07.07.2015