2012-07-07 2 views
4

개별 사용자가 hudson 서버로 repo 경로를 보내고 서버가 해당 repo 빌드를 시작하도록하고 싶습니다. 나는 동적으로 생성 된 작업 구성의 흔적을 남기고 싶지 않습니다. 나는 같은 직업에 대한 여러 개의 동시 인스턴스를 시작하고 싶다. 분명히 이것은 다른 인스턴스에 대해 다른 작업 공간을 필요로합니다. 나는 이것이 현재의 확장을 사용해서는 불가능하다고 믿는다. 나는 내가 성취하려고하는 것에 대해 다른 접근 방식에 열려 있습니다.동일한 hudson/jenkins 작업의 동시 인스턴스

단지 허드슨 서버가 외부 소스의 빌드 요청을 받고 무료 집행자가있는 한 시작할 수 있기를 바랍니다. 나는 repo의 위치를 ​​제외한 모든 빌드에 대해 빌드 구성을 동일하게하고 싶습니다. 나는 자동 생성 된 이름으로 수십 개의 동일한 작업을하고 싶지 않습니다.

허드슨이나 젠킨스를 사용하는 사람이 있습니까? 너 어떻게 지내니? 필자는 충분한 스크립팅을 통해 스크립트의 CLI API를 통해 필요한 작업 구성을 동적으로 생성 한 다음 완료되면이를 삭제할 수 있다고 생각합니다. 하지만 주변에 유물을 남기고 싶으므로 작업이 끝나면 작업을 망가 뜨리는 것이 문제입니다. 나는 정말로 내 자신의 확장을 쓰고 유지하고 싶지 않다.

답변

5

사용하는 SCM의 유형에 따라 다르지만 젠킨스와 플러그인을 사용하지 않고 간단하게 처리 할 수 ​​있어야합니다.
어쨌든 허드슨의 upgrading입니다. Jenkins가 된 이후 많은 릴리스에서 유스 케이스를 지원하는 데 필요한 기능이 확실히 향상되었습니다.

빌드 경로에 매개 변수로 레포 경로를 전달하려면 빌드 설정에서 "This build is parameterized"옵션을 선택해야합니다. 여기에 REPO_PATH 또는 유사한 문자열 매개 변수를 추가 할 수 있습니다.

다음으로 코드가 체크 아웃되는 위치를 지정하는 경우 경로를 ${REPO_PATH}으로 바꿉니다.
코드 —을 체크 아웃하거나 스크립트에서 repo 경로 —에 액세스해야하는 경우 변수가 자동으로 사용자 환경에 추가되므로 쉘 스크립트 또는 Ant 파일에서 ${REPO_PATH}을 참조 할 수 있습니다.

이 시점에서 빌드을 누르면 빌드가 시작되기 전에 repo 경로를 입력하라는 메시지가 표시됩니다. 위의 wiki 페이지에서 언급했듯이 buildWithParameters URL을 호출하여 원하는 매개 변수로 직접 빌드를 시작할 수 있습니다 (예 : http://server/job/myjob/buildWithParameters?REPO_PATH=foo

마지막으로 빌드를 동시에 실행하려면 Jenkins가 동시 빌드를위한 임시 작업 영역을 만들어이 작업을 관리 할 수 ​​있습니다. 작업 구성에서 "필요한 경우 동시 빌드 실행"옵션을 사용하십시오.

다른 Jenkins 빌드와 동일한 아티팩트를 사용할 수 있습니다. 아마도 당신은 얼마나 많은 최근의 유물이 보관되고 있는지 관리하고 싶을 것입니다. 이 작업은 "오래된 빌드 삭제"를 선택하고 아래의 고급 & # x2026;의 경우 "이슈와 함께 유지할 최대 빌드 수"에 값을 입력 할 수 있습니다.

+0

실제로이 기능은 내가 사용하고있는 허드슨 2.2.0에서도 지원됩니다. 그러나 매트릭스 스타일의 작업에는 지원되지 않습니다. 그래서 그것을 보지 못했습니다. 나는 그 문제를 해결할 수있을 것이라고 생각합니다. 도와 주셔서 감사합니다! –

+0

@ChrisQuenelle Jenkins는 버전 1.467부터 동시 매트릭스 빌드를 지원하며, 매개 변수화 된 매트릭스 빌드도 가능합니다. –

관련 문제