문제

이것은 나를 미치게하는 것을 시작하기 시작했습니다.하지만 나는 나 자신이 그것을 알아낼 수있는 행운이없는 것처럼 보입니다. /

슬레이브 a 및 슬레이브 b 와 같이 두 슬레이브간에 문자열 값을 공유하는 메커니즘을 설정해야합니다.

현재 가장 가까운 가장 가까운 것은 이렇게 질문입니다. jenkins 슬레이브 환경 변수 새로 고침

그러나 Slaves 환경 변수 자체가 아닌 BuildScripts에서 액세스를 가능하게하는 것을 목표로합니다. (관련된 질문 : 환경 변수가 어떻게 사용됩니까? Windows 배치 명령이있는 Jenkins에서 )

현재이 설정을 가지고 있습니다 :

1) a a 을 트리거합니다.

이 Windows 배치 코드 (실제 경로, 분명히 '<>'로 대체됩니다) :

cmd /c start java -jar <path_of_slave>\slave.jar -jnlpUrl  <url_of_slave>/slave-agent.jnlp

setenv.exe /m HOR_BUILD_ID -delete
setenv.exe /m HOR_BUILD_ID %BUILD_NUMBER%
setenv.exe /m HOR_UPSTREAM_ID -delete
setenv.exe /m HOR_UPSTREAM_ID %JOB_NAME%
.

꽤 자명하고 똑바로 앞으로 imho.

2) a 에 대한 일은 성공적인 빌드에서 트리거되는 업스트림 작업 b 을 가지고 있습니다. 그래서, 슬레이브 b b 빌드는이 일괄 처리 코드를 실행합니다 (실제 경로, 분명히 '<>'로 대체됩니다) :

SetLocal EnableDelayedExpansion

@echo off
@echo --- Refreshing Environemnt variables... 
@echo on
set prgfil=%ProgramFiles(x86)%
call "%WORKSPACE%\..\..\..\tools\misc\resetvars.bat"
@echo --- Reading environment variables... 
copy /y "<path_containing_%HOR_UPSTREAM_ID%_variable" "<path_containing_%HOR_BUILD_ID%_variable"
if !errorlevel!==0 goto ok1
goto error
:ok1

goto end

:error
EndLocal
exit /b 1

:end
EndLocal
.

주 : resetvars.bat 및 resetvars.vbs이 SO 질문에서 취해진 다 : Windows에서 명령 프롬프트에서 환경 변수를 새로 고치는 명령이 있습니까?


출력 (% hor_build_id % 및 % hor_upstream_id % 값), 오래된 변수를 새로 고침하는 것은 Darn Jenkins (Master) 서비스를 재시작하는 것입니다. 그러나 이것은 확실히 No-Go가 아닙니다. CI 환경 ...

b 을 트리거 할 수 있도록 해당 변수를 새로 고쳐 지도록하는 방법이 있습니다. 예를 들어 envInject 플러그인을 사용하여 슬레이브 w / o에서?


사용자 상호 작용이 필요한 또 다른 질문 및 대답이므로 내 경우에 허용되지 않음 : http : // comments.gmane.org/gmane.comp.java.hudson.user/37897


아마도 슬레이브와 해당 노드는 변수를 수신하거나 환경을 해결하지 않으므로 Global EnvirTonemTN 변수를 검색 할 수 없습니까? 갑자기 흥미로운 환경 변수 구성 데이터가 내 눈을 묵은다 :

node_labels | prodrerease

node_name | a

... 이것은 노예 b 이지만, 이것은 원래 노예 a ... 뭐라구 ????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? : /

루트 문제가 여러 슬레이브 노드 정보를 해결할 때 Jenkins가 버그가 있다는 것을 느끼기 시작했습니다.

이슈 @ jenkins jira : https : //issues.jenkins- ci.org/browse/jenkins-15397

도움이 되었습니까?

해결책

매개 변수화 된 트리거 플러그인을 추가하는 것을 보았습니까?

https://wiki.jenkins-ci.org/display/Jenkins / 매개 변수화 된 + 트리거 + 플러그인

이렇게하면 첫 번째 작업에서 두 번째 작업으로 매개 변수를 전달할 수 있습니다 (삭제할 작업 이름과 같이).

다른 팁

Jenkins 매개 변수화 된 빌드를 찾고 있습니다. 여기 를 따르십시오.그리고 아무런 시간에 달리기!

은 다음과 같이 보입니다 (https://issues.jenkins-ci.org/browse/jenkins-6604) 수정은 다음과 같이 변경되었습니다.

  • Windows 2K8 (R2) X64 (Datacenter) 컴퓨터에 둘 이상의 슬레이브를 설치할 수있는 inpossibility를 고정시킵니다.
  • 가치를 올바르게 해결하기 위해 정확하게 inpossabletive를 고정시킵니다.설치가 변경되지 않았지만 모든 로그인을 다시 누리는 것처럼 보입니다.
  • probobly는 node_labels와 node_name이 시스템 정보 config에서로드되지 않으므로 공구 환경 설정을 부러 뜨리지 않고이 설정이 실제로 작동하는 한, 누가이 설정이 실제로 작동합니다 (그리고 다음 jenkins 업데이트가 끊어지지 않습니다 ...).D

    참조를 위해 제가 만든 JIRA 문제는 여전히 열려 있습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top