2009-08-29 6 views
17

저는 CI 및 자동 빌드에 대해 최근에 많이 생각해 왔으며 지속적인 통합 환경을 설정하고 유지 관리하는 모범 사례가 있는지 알고 싶어합니다. 모든 CI 관련 파일을 프로젝트 소스와 함께 체크인 상태로 유지합니까? 대개 어떻게 CI를 구조화하고 파일을 빌드 하시겠습니까? 모든 팁을 환영합니다!연속 통합 - 모범 사례

+0

CI에 할당 된 사항은 플랫폼에 독립적이지만 CI 및 파일을 구성하는 방법은 플랫폼의 영향을받을 수 있습니다. 당신의 플랫폼이 무엇인지 공유하고 싶습니까? – olle

+0

저는 .NET/Windows 환경에 살고 있습니다. 현재 우리는 Cruise Control .NET, MSBuild 및 NAnt을 사용하고 있습니다. –

+0

이 기사 확인 : http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256

답변

3

이미 확실히 듀발/마 탸스/글로버에 의해 마틴 파울러 시리즈에서 Continuous Integration 책을 체크 아웃하지 않은 경우. 견고한 예제로 깊이 묻는 모든 질문을 다루고 있습니다.

2

Pragmatic Series '"Pragmatic Project Automation"도 있습니다.

물론 빌드 할 때 필요한 모든 파일을 체크인해야합니다. CI가 어떻게 얻을 수 있습니까?

저는 CI와 Java를 사용 했으므로 Ant build.xml과 Cruise Control, Team City 또는 Hudson을 의미합니다. 프로젝트의 일관된 디렉토리 구조를 고수하는 경우 build.xml이 일반적 일 수 있습니다.

+0

예. 빌드 서버에 여러 가지 사항을 설치해야하지만 목표는 모든 CI 관련 파일을 소스 제어하에두고 CI 서버에서 파일을 가져 오는 것입니다. 우리는 C# 개발을 위해 TeamCity를 사용합니다. 빌드가 복잡 해지면 NAnt (MSBuild도 호출 할 수 있음)를 사용합니다. – TrueWill

1

빌드 스크립트가 커지기 시작하면 관련 부분을 분리하여 포함시킬 수 있습니다. 따라서 유지 보수 및 가독성이 향상됩니다.

다른 조언은 기존 프로그래밍과 달리 - 빌드 스크립트를 만들 때 자유로운 의견을 사용하는 것입니다.

6
  1. 한 단계 빌드로 시작하십시오. 가지고 있지 않으면 합리적인 CI를 가질 수 없습니다
  2. 소스 제어에 없으면 존재하지 않습니다
  3. CI를 설정하고 유지 관리하는 것이 개발자를 설정하는 노력을 초과하는 경우 워크 스테이션에서 IDE에 지나치게 의존하거나 프로젝트 구조가 지나치게 복잡합니다. 이것을 리팩토링 기회로 간주하십시오.
  4. CI를 수행하는 데 특별한 것이 필요하지 않습니다. 당신은 그것을하는 것이 무엇인지를 알 필요조차 없습니다. 내가 my earlier experience here에 대해 쓴 적이 있는데, CI라는 용어를 듣기 전에 순진한 CI를 구현했습니다.
2

인기있는 Jenkins/Hudson CI 도구의 창업자 인 Kohsuke Kawaguchi가 도움이 될만한 백서를 발표했습니다. 7 Ways to Optimize Jenkins