빌드 스크립트 및 빌드 서버의 책임


12

빌드 스크립트와 빌드 서버의 책임에 대한 설명이 필요합니다.

지속적인 통합 및 빌드에 대한 Net의 여러 기사를 읽었습니다. 포함

그리고 우리 소프트웨어의 빌드 프로세스에 관해 조언자와 대화를 나누었습니다. 그는 매우 경험이 많기 때문에 그의 진술을 신뢰하지만 혼란에 빠졌습니다.

내가 이해 한대로 내 연구에서 (그리고 내가 묻는 것이므로 여기에서 수정하십시오) 이상적인 것은 다음과 같아야합니다.

  • 모든 프로젝트에는 빌드 스크립트가 있습니다
  • 이 스크립트는 프로젝트를 빌드
  • 이 스크립트는 종속성이 이전에 빌드되었는지 확인합니다

종속성은 다른 프로젝트 일 수 있으므로 자체 빌드 스크립트를 사용하면 트리와 같은 계층이 발생합니다. 모든 프로젝트와 응용 프로그램을 빌드하는 최상위 빌드 스크립트가있을 수 있습니다.

그러나 빌드 서버의 책임은 다음과 같습니다.

  • 저장소를 확인하십시오
  • 빌드를 트리거
  • 트리거 테스트 및 기타 QA 도구
  • 유물을 사용할 수있게하다

수동, 야간 또는 저장소가 변경 될 때마다 트리거 될 수 있습니다.


내 조언자의 목표는 내가 이해하는 것처럼 하나의 빌드 스크립트는 융통성이없고 유지 관리가 불가능한 방법이라는 것입니다 (레거시 코드베이스를 위해 스크립트를 작성하는 데 시간이 오래 걸린다는 점 외에도). 또한 빌드 서버는 종속성을 유지 보수해야합니다 (예 : 새 종속성 작성시 이전 종속성 사용). 특히 Ant구체적인 주제이기 때문에 코드베이스에 사용되는 모든 종류의 다른 기술을 구축 할 수 없으며 종속성을 유지할 수 없습니다.

목표를 정교하게하고 책임을 명확히 할 수 있습니까?


4
이것은 좋은 질문이며 답변을 드릴 것입니다 (나중에 시간이 있는데 아직 답변을받지 못했습니다) : 실제로 돌아가서 조언자에게 설명을 받아야합니다. 성과를 평가할 사람과 대화를 나눈 후 혼란스러워하는 것은 재난의 요리법이며, 그들이 귀하와 적절하게 의사 소통을하지 못하고 있거나 적극적으로 듣지 않고 있지만 그렇지 않은 것 같습니다 여기).
Steven Evers

2
@ Angelo.Hannes 나는 당신이 모든 주요 포인트를 쳤다고 생각합니다. 혼란스러워하는 것을 더 구체적으로 설명 할 수 있습니까?
M. Dudley

@SteveEvers 글쎄,이 주제에 대한 소개를 읽었 듯이, 나는 그것에 대한 지식을 먼저 넓히고 싶었습니다. 그런 다음이 주제를 다시 선택하겠습니다. 따라서 나는 당신의 답변에 정말 감사하겠습니다.
Angelo.Hannes

@ M.Dudley 내가 말했듯이, 어느 책임이 어디로 가야할지 모르겠습니다. 전체 소프트웨어의 빌드 스크립트가 올바른 방법인지 여부
Angelo.Hannes

답변:


14

이것들은 직교입니다.

빌드 스크립트는 갓 체크 아웃 소스 트리에 호출에 필요한 목표와 종속의 전체 빌드를 산출, 그 메커니즘입니다. makefile이 있거나 MSBuild, Ant, Maven 또는 Scons의 적절한 호출이 있으면 단순히 'make all'이 될 수 있습니다. 복잡한 종속성 또는 관련 프로젝트 계층이있는 경우 '빌드 스크립트'는 각 파일을 차례로 호출하여 성공 여부를 확인하는 최상위 파일 일 수 있습니다.

빌드 스크립트는 체크 아웃, 빌드, 테스트, 패키지 등 많은 스크립트 중 하나 일 뿐이지 만 명령 줄 매개 변수로 제어되는 올인원 메커니즘을 가질 수 있습니다. 환경에 따라 다릅니다.

빌드 서버 또는 다소 지속적인 통합 서버 는 체크 아웃-> 빌드-> 테스트-> 패키지-> 단계-> 배포 파이프 라인의 스케줄링 / 트리거링, 모니터링 및보고를 담당하는 자동화 메커니즘입니다. 더 정교하게 손을 대지 않아도 cron / 작업 스케줄러를 사용할 수 있지만 Jenkins, Cruise Control, TeamCity 등과 같은 훌륭한 도구가 많이 있습니다.

사용 중 / 오프라인 / 연결할 수없는 / 다른 방법으로는 사용할 수없는 경우 CI 서버 사용 하지 않고 빌드 호출 할 수 있어야하므로 빌드 / 테스트 / 무엇을 수행했는지에 대한 논리는 CI 시스템이지만 분기 / 빌드 유형 / 버전 / 아키텍처 등에 의해 매개 변수화되어 호출 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.