2014-09-21 2 views
2

내가 받는다는 프로젝트를 빌드 할 억지로와 젠킨스를 사용하고, 나는 받는다는 출시 플러그인을 사용합니다. 내 프로젝트를 구성했고 관련 Jenkins 플러그인을 사용하여 maven release plugin을 사용할 때까지 빌드가 잘 진행되고 있습니다. 마른 실행으로 모든 것이 잘되었지만 출시를 시도 할 때 나는이 불쾌한 오류 메시지 (아래)를 받았습니다. 어떤 이유로 젠킨스는 P4 서버에 연결할 수 없습니다. 또한, "P4PASSWD 환경에서 노출"이 선택됩니다.젠킨스와 억지로 암호 문제

편집 - 당신이 드라이 런 말을 당신이 전용 또는 명령 줄에서 젠킨스를 사용하여 수행 할 대답 Technext의 질문에

  • ?
  • 정확히 P4에 대한 암호를 설정하는
  • ? '글로벌 자격증 명'섹션에 있습니까? 프로젝트 구성에서 소스 코드 관리 -> 퍼 코어 -> 암호
  • 여기서 '환경에서 P4PASSWD 노출'옵션을 얻고 있습니까? 같은 장소 위의 로그에서
  • ,이 라인은 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. 

편집 2 - 환경 변수 인쇄

당 Technext 요청, I release : prepare를 호출 할 때 관련 P4 환경 변수를 인쇄했습니다. 모든 변수가 올바른 값을 표시하지만 p4.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

당신이 말하는'건조 run', 당신은 단지 또는 _command line_에서 젠킨스를 사용하여 수행합니까? 정확하게 P4에 대한 암호를 설정하고 있습니까? '글로벌 자격증 명'섹션에 있습니까? 'P4PASSWD를 환경에 노출 시키십시오'옵션을 어디서 얻고 있습니까? 제한된 경험으로 필자는 Perforce에 몇 년 전부터 경험이 있었기 때문에 빌드 상자에 암호를 설정하기 위해 매일 스케줄을 사용하는 설치가있었습니다. 위의 로그에서이 줄은 P4' "d : \ program files \ perforce \ p4.exe"set "에 대한 암호를 설정합니까? – Technext

+0

@Technext 덕분에, 나는이 부분에서 내 문을 중단했다, 때문에 문자 제한으로 편집 된 질문 –

+0

를 참조하십시오. '환경에서 P4PASSWD 공개'를 이미 활성화 한 경우 왜 d : \ program files \ perforce \ p4.exe "set"명령을 사용하여 _again_ 하시겠습니까? 이 _set_ 명령을 배치 파일을 통해 호출 하시겠습니까? 아니면 빌드> 빌드 추가 단계> Windows 배치 명령 실행 섹션을 사용 했습니까? – Technext

답변

4

마지막으로 해결 방법이 있습니다. Jenkins Perforce 플러그인은 로그인을하고 티켓을 발행하므로 "Release goals and options"필드에 -Dpassword=${P4TICKET}을 추가해야했습니다. PERFORM SCM 공급자가 -P <P4TICKET> 플래그를 사용하여 p4 명령을 실행합니다. 도움에 대한

감사 @Technext.

+0

마침내 효과가 있음을 알게되어 반갑습니다. 해결책을 다른 사람들에게 도움이되도록 답을 표시하십시오. :) – Technext