2011-03-14 4 views
4

우리 저장소는 최근 몇 달 사이에 크기가 상당히 커졌으며 TeamCity 빌드는 심각하게 느려졌습니다.TeamCity 빌드의 속도를 높이려면 어떻게해야합니까?

대량의 파일은 설치 파일과 사람들이 SVN에 체크인 한 코드가 아닌 필수적이지 않은 (빌드를 위해) 필수 요소입니다.

그냥 기본 무료 버전을 실행하고 3 명의 에이전트가 있습니다. VCS 체크 아웃 모드는 '서버에서 자동으로'입니다. 2 개의 솔루션 파일은 모두 C#이며 우리는 MSBuild 스크립트를 사용하고 있습니다.

나는 빌드 구성에서 체크 아웃 규칙 섹션을 좋아하지만, 모든 코드를 가져오고 나면 나에게 묻는다면 그 오브젝트를 물리 칠 규칙을 적용하기 때문에 작동하지 않는다는 것을 읽었다.

빌드에 약 1 시간이 걸리지 만, TeamCity에 코드를 가져 오면 다른 것이 필요하지 않으며 10 분 이내에 사용할 수 있습니다.

MSBuild를 사용하여 & 개의 파일을 제외하는 몇 가지 기사를 찾았지만 SVN에서 가져 오는 스크립트를 빌드 할 때 아무것도 찾을 수 없으며 TeamCity가 수행한다고 생각합니다.

TeamCity 및 MSBuild를 사용하여 빌드를 처음부터 새로 작성하고 SVN에서 가져올 항목을 선택하도록 선택할 수있는 변경 사항은 누구나 제안 할 수 있습니까?

감사합니다.

+0

누구나 소스 제어 모범 사례, CI 및 솔루션 구조 모범 사례에 대한 유용한 기사 나 서적을 권장합니다. – Michael

+1

Martin Fowler ftw : http://martinfowler.com/articles/continuousIntegration.html –

답변

2
  1. 빌드 만 변경됩니다.
  2. CI 빌드는 릴리스 빌드의 모든 작업을 수행 할 필요가 없습니다. 모든 CI가 컴파일되고 검증이 필요합니다.
  3. Solutions, 언젠가 devs는 단일 sln에로드를 넣습니다. youve가 하나의 sln에서 많은 서비스를 가지고 있고 매번 하나만 변경되면 구축됩니까? 그래서 그들을 분할 - 출력 당 하나의 sln (나는 exe 또는 서비스 또는 무엇이든간에 하나의 DLL을 의미)
  4. 빌드 Parallelise. TeamCity의 각 출력에 대해 서로 다른 빌드 대상 지정
  5. 아티팩트로 빌드하고 아티팩트를 배포하십시오. 즉, 배포를 완료하기 위해 빌드가 완료 될 때까지 기다릴 필요가 없습니다.

10 분 동기화는 여전히 SVN에 대한 정말로 긴 시간입니다. 실제로 내려야합니다. 명령 줄에서 얼마나 걸리나요? 비 빌드 관련 항목을 다른 저장소로 이동 하시겠습니까?

큰 코드베이스와 svn을 사용하면 Svn의 체크 인 된 바이너리/참조 섹션에 코어 구성 요소를 빌드하는 것이 좋습니다. 이렇게하면 코드를 작성하는 데 시간을 낭비하는 대신 빌드 된 객체를 다른 팀과 공유 할 수 있습니다.

희망 하시겠습니까?

+0

안녕하세요 제임스 - 답장을 보내 주셔서 감사합니다. 명확히하기 위해 동기 시간으로 무엇을 의미합니까? SVN을 사용하여 완전히 정리 된 체크 아웃을 하시거나 그냥 업데이트 하시겠습니까? 레포가 1GB 이상으로 커짐에 따라 전체 체크 아웃에 시간이 걸립니다. 업데이트는 변경 내용에 따라 다릅니다. 나는 우리 SVN 서버가 그렇게 빠르지 않다고 생각하지만, 10 분은 여전히 ​​너무 오래 기다려야한다고 말합니다. – Michael

+0

나는 당신의 코드베이스의 완전히 새로운 사본을 얻을 시간을 의미했다. 데포를 분류해야한다고 생각해. 깨끗한 사본을 얻으려면 10 분이 필요합니다. –

관련 문제