2010-04-29 2 views
4

Windows 용 Hudson을 사용하여 .NET 솔루션을 만들고 유닛 테스트 (NUnit)를 실행합니다. Hudson은 실제 작업을 수행하는 배치 파일을 시작하는 데 사용됩니다.원격 다운 스트림 빌드 슬레이브에 업스트림으로 빌드 된 바이너리를 전달하는 방법

이제 빌드 슬레이브에서 실행될 새로운 테스트를 설정하려고하는데 매우 오래 실행됩니다. 테스트는 업스트림 빌드에서 생성 된 바이너리를 사용해야합니다.

Hudson 설명서를 검색했지만 업스트림 빌드 아티팩트를 다운 스트림 슬레이브에 전달하는 방법을 찾을 수 없습니다. 어떻게해야합니까?

+0

어떤 OS입니까? 쉘 스크립트/배치 파일을 실행할 수 있습니까? – mmr

+0

@ mmr : "우리는 Windows에서 hudson을 사용하고 있습니다 ..."다른 컴퓨터 _에서 슬레이브를 빌드하려면 여러 파일을 전달해야합니다. – sbi

+0

Windows에서 배치 스크립트를 통해 네트워크 공유로 복사하지 않으시겠습니까? hudson 설치는 배치 스크립트를 사용하여 서버가 테스터 용 배포 서버로 생성 한 최종 빌드와 같은 것들을 이동합니다. (예, 창문이 보이지 않는 것에 대한 저의 코멘트). – mmr

답변

7

다운 스트림 빌드에서 Copy Artifact plugin을 사용하십시오.

업스트림 작업의 이름과 다운 스트림 작업 영역에 복사 할 경로를 지정하기 만하면됩니다.

+0

인 repo의 revin을 체크인의 주석에 넣을 수 있습니다. 이것이 실제로 필요한 것 같습니다. 방금 설치 했으므로 다운 스트림 프로젝트에서 아티팩트를 복사하는 빌드 단계를 추가 할 수 있습니다. 그러나, 나는 이것을 어떻게 사용하는지 모르겠습니다. 업스트림 프로젝트의 작업 공간에서 폴더가 필요하다고 가정 해 봅시다. 들어가려면 무엇이 필요합니까? "path/to/folder"가 작동하지 않는 것 같습니다. – sbi

+0

나는 당신이 단지 디렉토리를 지정할 수 있다고 생각하지 않는다; 플러그인은 파일에서 작동합니다. 그러나 'path/to/folder/**'패턴은 트릭을 수행해야합니다. 즉,이 디렉토리와 하위 디렉토리에있는 모든 파일을 복사해야합니다. –

+0

좋아, 그래서 지금 업스트림 빌드를위한 빌드 스크립트를 가지고 그 폴더를 지우고 허드슨은 지퍼를 아티팩트로 수집한다. 다운 스트림 테스트는 해당 이슈를 복사하도록 구성됩니다. 그러나 나는 항상 "에서 복사 된 0 개의 유물"메시지를받습니다. 어떤 생각이 잘못 될 수 있습니까? – sbi

1

사용중인 소스 제어 관리에 따라 속임수를 쓸 수 있습니다. 나는 바이너리를 체크인하는 팬이 아니다. 특히 그들이 크다면. 하지만 나는 과거에 CI 빌드를 통해 생성 된 바이너리 나 설치 프로그램을 가져 와서 별도의 svn 저장소로 체크인을 자동화하고 마스터가 지시 할 때 슬레이브 시스템이 해당 저장소에서 당겨서 필요한 모든 테스트를 수행하도록했습니다. 실행.

+0

그게 효과가 있지만 바이너리를 아무 것도 필요로하지 않게하는 SVN 저장소는 진정으로 자원 낭비 일 것입니다. 나는 허드슨이 상자 밖에서 능력을 가지고 왔다고 생각했지만, 필요한 경우 확장 기능을 사용하여 기꺼이 할 의향이있다. – sbi

+0

동의 할 것입니다. 필요하지 않다면 자원 낭비 일 것입니다. 우리는 이러한 리소스를 유지하여 어떤 이유로 테스트가 실패한 경우 문제를 재현하기 위해 테스트 파일을 보내도록 설치 파일을 가지고 있습니다. 물론, 빌드가 생성 된 repo 개정에서 다시 빌드 할 수 있어야하지만 쉽게 발견했습니다. 자동화 된 빌드는 이진 파일의 생성 위치가 –

0

바이너리에만 의존하는 경우 다소 과장 될 수 있습니다. 그러나 전체 작업 공간을 보관하는 Clone Workspace SCM Plugin도 있으며 SCM에서 오는 것처럼 다음 작업으로 확인할 수 있습니다. 그것은 꽤 새롭다.

현재 다른 설정을 사용하고 있습니다. 우리는 Artifact Repository를 가지고 바이너리를 밀었습니다. 두 번째 작업은 저장소에서 바이너리를 가져옵니다. 실제로는 표준 Windows 공유 일 뿐이며 여기에 작업 빌드 번호가있는 하위 폴더가 만들어집니다. [Parameterized Trigger Plugin] [2]을 사용하는 경우 작업 1의 빌드 번호를 작업 2로 전달하고 올바른 바이너리로 테스트를 실행할 수 있습니다. 부작용은 Hudson에서 오랜 역사를 유지하지 않고 나중에 바이너리를 재사용 할 수 있다는 것입니다.

[2] : http://Parameterized 트리거 플러그인

관련 문제