문제

엔지니어링 그룹의 빌드 프로세스를 자동화하려고합니다. 그 자동화의 일환으로 패턴을 준수하는 특정 태그를 적용하는 행위가 다음을 수행하는 자동화 된 프로세스를 시작하는 지점에 도달하려고 노력하고 있습니다.

  • 소스 코드를 확인하십시오
  • 템플릿에서 빌드 스크립트를 만듭니다
  • 프로젝트를 구축하십시오

나는 포스트 훅의 전복으로 이것을 할 수 있다고 확신하지만, 나는 전복 후크 이외의 무언가로 이것을 할 수있는 방법을 알아 내려고 노력하고 있습니다.

  • 전력 저장소의 태그 디렉토리를 모니터링하여 워크 플로우를 시작하는 것이 합리적입니까?
  • 이것에 도움이되는 괜찮은 도구가 있습니까 (가능한 경우 .NET이 좋을 것입니다).
  • 이 작업을 수행하기 위해 엔진을 작성하는 것이 더 낫습니까?

내 취향 :

  • 이것의 전부 또는 일부를 수행하는 기존 제품
  • 개발 작업이 발생 해야하는 경우 .NET가 바람직합니다.
  • Windows와 함께 작동합니다 (Linux 기반의 Repo가 있지만 Windows에서 모두 빌드됩니다).
도움이 되었습니까?

해결책

좋아요 허드슨 강 - SVN으로 쉽게 설정하고 상자 밖으로 작동합니다.

모든 커밋을 구축하도록 구성 할 수 있습니다.

나는 그것을 다운로드하고 하루 안에 그것을 만들기 시작했다. 그것은 많은 조정을 겪었지만 누구에게나 추천 할 것입니다.

나는 또한 크루즈 컨트롤을 사용했지만 그것에 만족하지는 않습니다. 크로스 플랫폼 문제 외에 특정 이유가 없습니다.

편집하다

최근에 Hudson 빌드 서버에서 Google/Gmail Jabber 채팅을 듣는 작업을 추가했습니다. 이 메커니즘으로 릴리스 빌드에 "일반"빌드를 "홍보"할 수 있습니다. 방금 개인 빌드를 릴리스 후보로 홍보/게시하는 데 필요한 단계를 수행하는 새로운 작업을 설정했습니다.

다른 팁

Hudson을 사용 하여이 작업을 수행했습니다. 정기적 인 전복 체크 아웃 슬롯에는 트렁크에 대한 체크 아웃이 있습니다.

http://dryad.googlecode.com/svn/trunk/dryad

그런 다음 첫 번째 빌드 작업으로서 "실행 쉘"이 있으며 해당 쉘에서 SVN 스위치를 사용하여 리포지토리의 최신 태그로 변경합니다.

SVN 스위치 http://dryad.googlecode.com/svn/tags/'SVN LS http://dryad.googlecode.com/svn/tags | 꼬리 -n 1 'Dryad

다음 빌드 단계는 태그 버전의 코드를 사용하여 빌드를 시작하는 Maven 'Clean Install'명령입니다.

Hudson이 스위치를 수행하지 않고 최신 태그 버전으로 시작하는 방법을 아직 알지 못했지만 스위치는 작동합니다. 그런 다음 태그 디렉토리가 업데이트 될 때 트리거가 될 수 있습니다.

자동화되어 있습니다 ... 약간의 kludge이지만 작동합니다 ...

스위치에는 두 번째 SVN 명령에 대한 백 틱이 포함되어야하지만 백 티크가 여기에 표시되지 않았기 때문에 사용해야했습니다.

Cruisecontrol 또는 Hudson (Hudson의 Java로 작성되었지만 Windows에서는 사용하기가 매우 쉽습니다)과 같은 지속적인 통합 빌드 엔진을 사용한 것 같습니다.

이제이 도구가 태그 디렉토리를 볼 수 있도록 빌드 스크립트를 퍼 뜨릴 수 있지만, 특정 위치를보고 해당 위치에서 프로젝트를 구축하려는 의도가되었으므로 곡물에 대해 조금이어야합니다. 전체 태그 디렉토리를 시청하면 빌드 시스템에서 모든 태그를 쉽게 확인할 수 있으며 빌드 할 태그를 결정하려면 최상위 스크립트가 필요합니다.

원하는대로 빌드 엔진은 특정 위치 ( '/Branches/Release')를 볼 수 있습니다. 그런 다음 해당 지점에 합병되면 Hudson은 프로젝트를 자동으로 구축하고 아티팩트를 보관하고 모두 성공한 경우 태그를 만듭니다 (Subversion Tagging Plugin 참조).

커밋 단계가 너무 오래 걸리기 때문에 커밋 후 고리에서 이런 종류의 일을하는 것을 좋아하지 않습니다. 그러나 TeamCity는 소스 제어 시스템입니다.

추천합니다 허드슨 강 이것을 위해.

cruisecontrol.net Subversion 리포지토리에서 자동 빌드를 쉽게 자동화 할 수 있습니다.

리포지토리 (SVN 및 기타 여러 유형)를 모니터링하고 다양한 도구를 사용하여 자동 빌드를 시작할 수 있습니다. (Nant, Msbuild 등)

이 목적을 위해이 사이트에 상용 제품이 광고되었습니다!

http://www.finalbuilder.com/default.aspx?tabid=314

시간 일정을 실행하지 않는 한 빌드 시작을 트리거하려면 후크 포스트 훅을 SVN에 추가해야 할 수도 있습니다.

나는 또한 허드슨을 추천합니다. 나는 비슷한 일을하고, 태그를 만들고 그 빌드를 시작하려고했습니다. 대신 Hudson 에이 플러그인을 사용하기로 결정했습니다.

http://wiki.hudson-ci.org/display/hudson/release+plugin

이것을 사용하여 태그의 생성과 명시 적 릴리스 빌드를 구동하십시오.

사용 중입니다 넌트 (그리고 nantcontrib) 자동 빌드 용. Subversion Repository를 자동으로 확인하고 (있는 경우) 최신 소스 코드 버전을 가져와 빌드를 시작합니다.

기존 작업이 원하는 작업을 정확하게 수행 할 수 있는지 확실하지 않지만 아마도 시작으로 사용할 수 있고 필요한 경우 특별한 요구에 대한 작업으로 확장 할 수 있습니다 (.NET으로 개발).

다른 사람들이 말했듯이, 당신은 연속 통합 서버 (cruisecontrol, cruisecontrol.net, Hudson 등)를 원합니다. 빌드 스크립트에서 작업하고 훅을 커밋하여 설명한 기능을 수행 할 수 있지만 결국 휠 (Continuous Integration Server)을 다시 발명 할 수 있습니다. 이 목적을위한 자유롭게 이용 가능한 솔루션이 있습니다.

프로세스는 위에서 설명한 것과 약간 다르게 작동합니다. 빌드 서버는 다음과 같습니다.

  1. 새로운 커밋을 감지하십시오
  2. 소스 코드를 확인하십시오
  3. 빌드 스크립트를 실행하십시오
  4. 성공적인 빌드에 태그

커밋은 프로세스를 트리거하고 프로세스를 트리거하는 태그 대신 태그를 생성합니다. 서버는 커밋 후크가 아닌 SVN 저장소를 모니터링합니다.

이 주제, 특히 옵션 tagonsuccess 및 tagbaseurl에 대한 cruisecontrol.net의 문서를 확인하십시오. Hudson과 Cruisecontrol에는 비슷한 옵션이 있어야합니다.

http://confluence.public.thoughtsworks.org/display/ccnet/subversionsource+control+block

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