7

현재 직장에서 지속적인 통합 환경을 설정하는 중입니다. 우리는 VisualSVN Server와 CrusieControl.NET을 사용하고 있습니다. 빌드가 실패하고 CruiseControl.NET 작업 복사본에 충돌이있는 경우가 종종 있습니다. 나는 이것이 Visual Studio 솔루션을 설치 한 방식 때문이라고 생각합니다. 희망을 갖고 우리가이 환경에서 운영하는 프로젝트가 많을수록 설정 방법에 대한 이해가 높아질 것이므로이 단계에서 왜 충돌이 발생하는지 의문을 제기하지 않을 것입니다. 빌드를 수정하려면 작업 복사본을 삭제하고 강제로 새 빌드를 작성하십시오.이 작업은 매번 (현재) 작동합니다. 그래서 제 질문은 : 지속적인 통합 빌드 프로세스의 유효한 부분을 작업 복사본을 삭제하고, 어떻게해야합니까?사전 빌드 작업 - CruiseControl.NET에서 작업 복사본 삭제

MSTask 및 명령 줄에서 delete를 호출하는 등의 솔루션을 시도했지만 운이 좋지 않습니다. 그래서 말의 존재에 대한

죄송합니다 - 좋은 일이 베타 :

+0

Subversion 용 CleanCopy는 현재 버전 1.4.1에서 구현됩니다. 구성에서 CleanCopy를 true로 설정해야합니다. – Alex

답변

9

빌드 전후에 전체 삭제를하는 것이 좋습니다. 즉, 빌드 환경에서 오래된 파일을 선택할 가능성이 없습니다. 저장소에있는 것과 정확히 일치하는 건물.

Nant와 함께 작업 복사본을 삭제할 수 있습니다.

Nant에서는 내가 삭제하고자하는 고유 폴더에서 깨끗한 스크립트를 가지고 CC.net에서 호출합니다.

배치 파일에서도 가능해야한다고 가정합니다. RMDIR 명령을 살펴보십시오 http://www.computerhope.com/rmdirhlp.htm

@pauldoo 내가 항상 수행해야 릴리스 빌드를 수행하기 위해 갈 때 내 CI 서버는 내가 어떤 놀라움을 원하지 않기 때문에 전체 삭제 할 선호

깨끗한 상태에서. 하지만 둘 다 처리 할 수 ​​있어야합니다. 이유가 없습니다.

0

그것은 매우 일반적이며, 일반적으로 의미있는 빌드를 수행하기 전에 '깨끗한'을 할 수있는 빌드 프로세스를위한 좋은 방법입니다. 이렇게하면 이전 빌드의 '아티팩트'가 출력물을 오염시키지 않습니다.

깨끗한 것은 기본적으로 작업 복사본을 삭제하여 수행하는 작업입니다.

0

@ 브래드 바커

클린이란 빌드 제품을 완전히 없애는 것을 의미합니다.

작업 복사본을 삭제하면 다른 모든 것도 삭제됩니다 (소스 및 프로젝트 파일 등).

정상적인 개발자가 수행하는대로 복제 시스템이 전체 삭제를 수행하지 않고도 작동 할 수 있다면 일반적으로 좋습니다. 업데이트 중에 발견되는 모든 충돌은 개발자가 기대할 수있는 조기 경고입니다. 정식 릴리스의


@jamie

네 그것은 완전히 깨끗한 체크 아웃을하는 것이 좋습니다. 그래서 그것은 빌드의 목적에 달려 있다고 생각합니다.

2

@jamie : 연속 통합 서버를 사용할 때마다 빌드 빌드를 수행 할 때 청결한 빌드를 수행하지 못할 수 있습니다.내가 작업 한 일부 프로젝트에서 깨끗한 빌드는 80+ 분이 걸립니다 (체크 아웃 한 후 수천 개의 C++ 파일로 구성된 임베디드 프로젝트가 여러 대상에 대해 컴파일됩니다). 이 경우 클린 빌드가 증분 빌드가 수행 할 수없는 작업을 포착 할 가능성에 대해 빠른 피드백의 이점을 고려해야합니다. 우리의 경우에는 빌드 프로세스를 개선하고 병렬 처리하는 동시에 CI 시스템에서 점진적 빌드를 허용했습니다. 우리는 깨끗한 빌드를 수행하지 않았기 때문에 몇 가지 문제가 있었지만 야간 또는 매주 깨끗한 빌드를 수행하여 CI 시스템의 빠른 피드백을 잃지 않고 위험을 제거 할 수있었습니다.

2

CC.NET의 jira을 체크 아웃하면 Subversion을위한 CleanCopy를 구현하기위한 패치가 체크인되고 TFS와 마찬가지로 소스 제어 블록 내에서 CleanCopy를 true로 설정하면됩니다.