2014-02-21 2 views
4

저는 젠킨스를 처음 접했습니다. 마스터 노드에서 작업의 일부를 실행하고 나머지는 슬레이브 노드에서 실행해야하는 요구 사항이 있습니다.Job의 일부는 master에서, 다른 부분은 slave에서 실행할 수 있습니까?

포럼에서 검색해 보았지만 관련된 내용을 찾을 수 없습니다. 이것을 할 수 있습니까?

그렇지 않다면 두 가지 작업으로 나누어야합니다.

편집 기본적으로 나는 다음 컴파일하고 jar 파일을 빌드 SVN에서 소스 코드를 확인하는 작업을합니다. 그 후이 응용 프로그램에 대한 현명한 설치 프로그램을 작성합니다. 마스터 (Linux)에서 소스 코드 체크 아웃 및 컴파일을 수행하고 Wise Installer 설치 프로그램을 Windows 슬레이브에 위임합니다.

답변

3

두 개의 개별 작업으로이 작업을 수행하는 것이 분명합니다. 마스터 작업이 슬레이브 작업을 트리거하도록 할 수 있습니다 (또는 그 반대).

마스터 빌드에서 빌드 아티팩트로 설치 프로그램에 제공해야하는 파일을 게시하는 경우 Jenkins URL을 통해 슬레이브로 가져 와서 설치 프로그램을 만들 수 있습니다. 이렇게하려면 마스터 빌드에서 "빌드 아티팩트"빌드 빌드 단계를 사용하십시오.

+0

@ gareth-bowles, 제 요구 사항을 업데이트했습니다. – sasankad

2

빌드 단계로 다른 작업을 병렬로 실행하는 빌드 단계에 대한 아이디어가 추가 된 Multijob plugin을 사용할 수 있습니다. 일반 자유형 작업 빌드 및 게시 빌드 옵션을 계속 사용할 수 있습니다.

1

Pipeline Plugin을 사용하면 여러 슬레이브 노드에서 실행되는 작업을 작성할 수 있습니다. Jenkins에서 다른 작업을 별도로 만들지 않아도됩니다. 파이프 라인 스크립트에 다른 node 문을 쓰면 해당 블록이 할당 된 노드에서 실행됩니다. 실행되는 노드의 유형을 제한하려면 레이블을 지정할 수 있습니다.

예를 들어,이 파이프 라인 스크립트는 두 개의 서로 다른 노드에의 일부를 실행합니다 :

node('linux') { 
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git' 
    sh "make" 
    step([$class: 'ArtifactArchiver', artifacts: 'build/program', fingerprint: true]) 
} 
node('windows && amd64') { 
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git' 
    sh "mytest.exe" 
} 

Pipeline plugin tutorial에서 좀 더 정보를 표시합니다. (이전에는 Workflow Plugin이라고 불렀음에 유의하십시오.)

관련 문제