릴리스 빌드 대 야간 빌드


13

일반적인 솔루션은 빌드 서버에서 CI (Continuous Integration) 빌드를 실행하는 것입니다. 소스 코드를 분석하고 빌드 (디버그에서)하고 테스트를 실행하며 테스트 범위를 측정하는 등의 작업을 수행합니다.

이제 일반적으로 알려진 또 다른 빌드 유형은 "Nightly build"입니다. 코드 문서 작성, 설정 패키지 작성, 테스트 환경에 배포 및 테스트 환경에 대한 자동 (연기 또는 수락) 테스트 실행과 같은 느린 작업 수행

이제 질문은

  • 릴리스 빌드로 세 번째 "릴리스 빌드"를 갖는 것이 더 낫습니까?
  • 아니면 릴리스 모드에서 "Nightly build"를 릴리스로 사용합니까?

회사에서 무엇을 사용하고 있습니까?

(릴리스 빌드는 잠재적 인 제품 버전의 소스 제어에 일종의 태그를 추가해야합니다.)

답변:


13

릴리스 빌드를 야간 빌드와 동일하게하는 경우는 다음 과 같습니다 . 릴리스 한 것과 정확히 동일한 항목을 테스트하려고합니다 . 이미 개발 테스트에서 발견되었을 수있는 프로덕션 버그를 발견하고 싶지 않습니다.

릴리스와 야간 빌드의 차이점 :

  • 야간 빌드는 매일 밤 자동으로 실행되지만 릴리스 빌드는 특정 시점에서 수동으로 실행해야합니다.
  • 릴리스 빌드는 소스 코드에 이상적으로 태그를 지정하고 분기하고, 중앙 저장소에 빌드 아티팩트를 배치해야합니다 (예 : Maven 사용시)

이러한 차이점은 실제로 내가 아는 대부분의 빌드 관리 시스템에서 몇 가지 추가 옵션입니다. 인적 오류 가능성을 최소화하기 위해 필요한 매개 변수 만 취하고 유효성을 검사하는 배치 / 스크립트 파일 등으로 저장할 수 있습니다.


7

글쎄, 릴리스 빌드가 가능한 한 야간에 프로세스에 가깝기를 원합니다! 이상적으로는 동일하지만 태그가 있습니다.

문제는 릴리스 빌드와 야간이 동일하지 않은 경우 다른 항목이 문제를 숨길 수있는 가능성이 있다는 것입니다.


3

CI 서비스에서 실행하는 모든 체크인을 모두 빌드하는 단일 빌드 프로세스가 있습니다. 그것은 디버그 및 릴리스 빌드입니다.

두세 개의 개별 프로세스를 갖는 것은 문서화되지 않고 무작위로 변경을 시작하기를 요구하는 것이므로 누군가가 모든 잠재적 릴리스에 대해 15 단계를 수행하여 문 밖으로 나갈 준비를하기까지는 그리 오래 걸리지 않습니다.


우리 회사는 4 가지 빌드 프로세스를 통해 이와 매우 비슷합니다. 우리는 그것을 바꿔야합니다.
Brandon

2

내가하고 싶은 한 가지는 야간 빌드를 디버그 모드가 아닌 릴리스 모드로 만드는 것입니다. System.Diagnostics.Debug를 대체하는 log4net과 같은 로깅 프레임 워크에서 릴리스 모드와 디버그 모드의 주요 차이점은 오브젝트 수명 및 코드 최적화입니다.

실제로 야간 빌드에 디버거를 연결하지 않는 한이 작업을 수행하는 것이 좋습니다.

우리가 따르는 프로세스는 매일 밤마다 야간 빌드가 실행되며, 작동하는 경우 동일한 빌드를 다른 서버에 배포 할 수 있습니다 (재 구축하지 않고 패키지화 된 설치 관리자를 실행하여 실행). 야간 빌드에 문제가 있으면 지점에서 변경 사항을 확인하고 낮 동안 해당 지점에서 '야간'빌드를 실행합니다. 그런 다음 테스트를 다시 실행할 수 있습니다.

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