2016-06-07 2 views
9

저는 기존 Jenkins 빌드 작업을 단일 Jenkins 2 파이프 라인으로 옮기려고합니다. 빌드 내에서 한 노드에서 다른 노드로 파일을 복사 할 수 있는지 궁금합니다. 내 생각은 다음과 같습니다Jenkins 파이프 라인을 사용하여 노드간에 빌드 이슈 복사

Node A (Windows) 
    Checkout scm 
    Execute ant build 
    Archive artifact (or whatever required action) 
Node B (Unix) 
    Checkout scm 
    Copy build artifact from node A --> is this possible ? 
    Execute ant build 
    Then followed by tests... 

나는 복사 유물 단계를 사용하려했지만, 그것을 제대로 작동하지 않았다, 그래서 궁금하네요의 중간에 파일을 복사 할 수있는 방법이 있다면 파이프 라인 또는 현재 빌드 아키텍처 (copy artifact plugin을 사용하지만 완전히 별도의 빌드 작업 사용)를 유지해야하는 경우.

+0

시작에 유래하는. 게시글에 "올바르게 작동하지 않는 것"이라는 코드를 포함 할 수 있습니다 ... ;-) – StephenKing

+0

'step ([$ class :'ArtifactArchiver ', 이슈 :'dist/*. zip ']을 사용하고 있습니다.) '을 사용하여 첫 번째 노드에 이슈를 보관하고'step ([$ class : 'CopyArtifact', 필터 : 'dist/*. zip', fingerprintArtifacts : true, projectName : 'PCT') ' 빌드가 끝난 후 사용 가능 –

답변

7

예, stash/unstash 단계를 사용하면 가능합니다.

이것에 대해 가이드

는 (병렬 실행에 집중)을 Jenkins Blog에서 찾을 수있다 :

parallel (
    "stream 1" : { 
        node { 
          unstash "binary"       
          sh "sleep 20s" 
          sh "echo hstream1" 
         } 
        }, 
    "stream 2" : { 
        node { 
          unstash "binary" 
          sh "echo hello2" 
          sh "hashtag fail"              
         } 
        } 
     ) 
관련 문제