2014-09-21 4 views
2

Я использую Jenkins с Perforce для создания проекта maven, и мне нужно использовать плагин maven-release. Я сконфигурировал свой проект, и сборка идет хорошо, пока я не попытаюсь использовать плагин релиза maven, используя соответствующий плагин Jenkins. С сухим запуском все шло хорошо, но, пытаясь сделать освобождение, я получил это неприятное сообщение об ошибке (см. Ниже). По какой-то причине Jenkins не может подключиться к серверу P4. Также проверяется «Expose P4PASSWD в среде».Jenkins and Perforce password issue

Edit - отвечая на вопросы Technext в

  • Когда вы говорите всухую, вы выполняете его с помощью Jenkins или только из командной строки? И
  • Где именно вы устанавливаете пароль для P4? В разделе «Глобальные полномочия»? В конфигурации проекта в разделе Управление исходным кодом-> Перфорация-> Пароль
  • Где вы можете выбрать 'Expose P4PASSWD in environment'? То же самое место
  • В журнале выше указан ли эта строка, задающая пароль для P4 "d:\program files\perforce\p4.exe" set? Эта строка предоставляет параметры P4 - все они (включая P4PASSWD) установлены правильно. Я удалил фактические значения из очевидных причин ...

Это сообщение об ошибке:

Started by user David 
[EnvInject] - Loading node environment variables. 
Building on master in workspace X:\hudson\jobs\myproject\workspace 
Using master perforce client: myproject 
[workspace] $ "D:\Program Files\Perforce\p4.exe" workspace -o myproject 
[workspace] $ "D:\Program Files\Perforce\p4.exe" login -a -p 
[workspace] $ "D:\Program Files\Perforce\p4.exe" -P *** workspace -o myproject 
Last build changeset: 1062732 
[workspace] $ "D:\Program Files\Perforce\p4.exe" -P *** changes -s submitted -m 1 //myproject/... 
Sync'ing workspace to changelist 1062732 (forcing sync of unchanged files). 
[workspace] $ "D:\Program Files\Perforce\p4.exe" -P *** -s sync -f //myproject/[email protected] 
Sync complete, took 108 ms 
[workspace] $ cmd /c call D:\apache-tomcat-6\temp\hudson368187580614800030.bat 

X:\hudson\jobs\myproject\workspace>"d:\program files\perforce\p4.exe" set 
P4CLIENT=myproject 
P4PASSWD=*** 
P4PORT=*** 
P4USER=*** 

X:\hudson\jobs\myproject\workspace>exit 0 
Parsing POMs 
Downloaded artifact ... 
[workspace] $ D:/ins/Java/jdk1.7.0_10.x64/bin/java -DcreateChecksum=true -cp X:\hudson\plugins\maven-plugin\WEB-INF\lib\maven31-agent-1.4.jar;X:\hudson\tools\hudson.tasks.Maven_MavenInstallation\Maven_3.1.1\boot\plexus-classworlds-2.5.1.jar;X:\hudson\tools\hudson.tasks.Maven_MavenInstallation\Maven_3.1.1/conf/logging jenkins.maven3.agent.Maven31Main X:\hudson\tools\hudson.tasks.Maven_MavenInstallation\Maven_3.1.1 D:\apache-tomcat-6\webapps\hudson\WEB-INF\lib\remoting-2.37.jar X:\hudson\plugins\maven-plugin\WEB-INF\lib\maven31-interceptor-1.4.jar X:\hudson\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.4.jar 51470 
<===[JENKINS REMOTING CAPACITY]===>channel started 
Executing Maven: -B -f X:\hudson\jobs\myproject\workspace\pom.xml -DdevelopmentVersion=0.0.2-SNAPSHOT -DreleaseVersion=0.0.1 -Dresume=false release:prepare release:perform -X 
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 18:22:22+0300) 
Maven home: X:\hudson\tools\hudson.tasks.Maven_MavenInstallation\Maven_3.1.1 
Java version: 1.7.0_10, vendor: Oracle Corporation 
Java home: D:\ins\Java\jdk1.7.0_10.x64\jre 
Default locale: en_US, platform encoding: Cp1252 
OS name: "windows server 2008", version: "6.0", arch: "amd64", family: "windows" 
[INFO] Error stacktraces are turned on. 
[DEBUG] Reading global settings from X:\hudson\tools\hudson.tasks.Maven_MavenInstallation\Maven_3.1.1\conf\settings.xml 
[DEBUG] Reading user settings from C:\...\.m2\settings.xml 
[INFO] Scanning for projects... 
[INFO] Downloading: ... 
[INFO] Downloaded: ... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Build Order: 
[INFO] 
[INFO] proj-parent 
[INFO] proja 
[INFO] projb 
[INFO] projc 
[INFO] test-reactor 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building test-reactor 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-release-plugin:2.5:prepare (default-cli) @ test-reactor --- 
[INFO] Verifying that there are no local modifications... 
[INFO] ignoring changes on: **\release.properties, **\pom.xml.next, **\pom.xml.releaseBackup, **\pom.xml.backup, **\pom.xml.branch, **\pom.xml.tag 
[INFO] No password found, proceeding without it. 
[DEBUG] SCM path in pom: //depot/myproject 
[DEBUG] Executing: cmd.exe /X /C "p4 -p *** where X:\hudson\jobs\myproject\workspace\pom.xml" 
[DEBUG] Perforce password (P4PASSWD) invalid or unset. 
[DEBUG] cannot find depot => using //depot/myproject 
[DEBUG] Executing cmd.exe /X /C "p4 -d X:\hudson\jobs\myproject\workspace -p *** opened //depot/myproject/..." 
[ERROR] CommandLineException Exit code: 1 - Perforce password (P4PASSWD) invalid or unset. 

Edit 2 - Печать переменных среды

запрос

Per Technext, я Когда вы вызываете выпуск, вы печатаете соответствующие переменные среды P4: подготовьте. Переменные все показывают правильные значения (скрытый здесь), но работает thep4.exe потом утверждает, что P4PASSWD не установлен

[INFO] Executing tasks 
Build sequence for target(s) `main' is [main] 
Complete build sequence is [main, ] 

main: 
    [echo] P4CLIENT [myproject] 
    [echo] P4PASSWD [***] 
    [echo] P4PORT [***] 
    [echo] P4USER [***] 
[INFO] Executed tasks 
Notifying upstream projects of job completion 
Join notifier requires a CauseAction 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building test-reactor 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-release-plugin:2.5:prepare (default-cli) @ test-reactor --- 
[INFO] Verifying that there are no local modifications... 
[INFO] ignoring changes on: **\release.properties, **\pom.xml.next, **\pom.xml.releaseBackup, **\pom.xml.backup, **\pom.xml.branch, **\pom.xml.tag 
[INFO] No password found, proceeding without it. 
[DEBUG] SCM path in pom: //depot/myproject 
[DEBUG] Executing: cmd.exe /X /C "p4 -p *** where ***\pom.xml" 
[DEBUG] Perforce password (P4PASSWD) invalid or unset. 
[DEBUG] cannot find depot => using //depot/myproject 
[DEBUG] Executing cmd.exe /X /C "p4 -d ****\workspace -p *** opened //depot/myproject/..." 
[ERROR] CommandLineException Exit code: 1 - Perforce password (P4PASSWD) invalid or unset. 
+1

Когда вы говорите «сухой ход», выполняете ли вы его только с помощью Jenkins или из командной строки? Где именно вы устанавливаете пароль для P4? В разделе «Глобальные полномочия»? Где вы получаете возможность «Expose P4PASSWD в среде»? Имея ограниченный опыт, у меня было несколько лет назад с Perforce, я помню, что у нас была настройка, в которой планировалось использовать каждый день для установки пароля в окне сборки. В вышеприведенном журнале эта строка настраивает пароль для P4 '' d: \ program files \ perforce \ p4.exe "set'? – Technext

+0

@Technext спасибо, см. Отредактированный вопрос –

+0

Из-за ограничения характера я должен был нарушить мои высказывания по частям. Когда вы уже включили «Expose P4PASSWD в среде», почему вы _again_ используете '' d: \ program files \ perforce \ p4.exe команду set? Вы вызываете эту команду _set_ через командный файл или используете раздел «Build> Add build step> Execute Windows batch command'? – Technext

ответ

4

Наконец получил решение. Плагин Jenkins perforce делает логин и выдает билет, поэтому мне пришлось добавить -Dpassword=${P4TICKET} в поле «Цели и опции выпуска». Это заставляет провайдера SCM использовать команду p4 с флагом -P <P4TICKET>.

Спасибо @Technext за помощь.

+0

Рад видеть, что вы, наконец, получили его работу. Пожалуйста, отметьте свое решение как ответ, чтобы он мог помочь другим. :) – Technext