지속적인 통합에서 외부 응용 프로그램 종속성을 처리하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/119724

문제

우리의 TeamCity Continuous Integration Server를 사용함으로써 우리는 가장 좋은 방법에 대해서는 확실하지 않은 몇 가지 문제를 발견했습니다. 즉, 응용 프로그램에서 CI 서버에서 필요한 외부 응용 프로그램을 참조하는 방법.

이것은 처음에 Crystal Reports에 대한 의존성으로 밝혀 졌기 때문에 즉각적인 문제를 해결하는 서버에 대한 Crystal Reports를 설치했습니다. 그러나 더 많은 응용 프로그램을 CI 서버로 이동함에 따라 더 많은 종속성을 찾고 있습니다.

여기에서 가장 좋은 전략은 무엇입니까? 서버에 필요한 응용 프로그램을 계속 설치해야합니까?

감사

도움이 되었습니까?

해결책

가능한 경우 외부 종속성을 빌드 시스템의 일부로 만듭니다. 예를 들어 버전 제어 시스템에 설치 프로그램을 확인하고이를 확인하고 Silent 모드로 실행하는 단계가 있습니다 (많은 설치자가 사용자 조치가없는 모드를 지원합니다).

이 방법으로 분기 또는 새로운 하드웨어 용으로 다른 빌드 머신을 설정 해야하는 경우 모든 것이 반복 가능합니다.

다른 팁

빌드에 빌드를 완료하기 위해 실제 응용 프로그램이 필요한 경우 빌드 서버에 응용 프로그램을 계속 설치해야합니다.

응용 프로그램에서 DLL 또는 어셈블리에 대한 참조가 필요한 경우, 회사에서 수행 한 작업은 특정 ApplicatoIn에 필요한 참조의 설치 가능 'SDK'를 작성하여 개발에 설치하고 잘 알려진 기계를 빌드하는 것입니다. 당사의 솔루션이 참조하는 도서관 디렉토리.

빌드 머신에서 사전 건축 단계는 올바른 버전의 종속성을 설치 한 다음 완료되면 정리하십시오.

최근에 우리는 빌드 프로세스가 활성화하는 빌드 머신에 가상 머신을 사용하는 것으로 옮겼습니다. 이 VM은 SDK를 사전 건축으로 설치 한 다음 빌드 후 스냅 샷 상태로 복원됩니다. 우리는 제거하기가 거의 불가능한 의존성을 가지고 있었기 때문에 매번 깨끗한 출발점을 만들었습니다.

Maven을 사용하여 빌드하면 pom.xml 파일에서 종속성을 정의 할 수 있습니다. 그런 다음 필요한 경우 자동으로 다운로드됩니다.

내가 올바르게 따랐는지 잘 모르겠습니다 ...

귀하의 응용 프로그램이 구축하는 동안이 외부 앱에 의존한다고 가정하고 있습니까? 이 경우 CI를 수행하는 기계에 있어야합니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top