2016-10-21 4 views
0

다른 프로젝트 빌드와 아티팩트를 유지하면서 Xamarin iOS 프로젝트를 빌드하는 방법을 결정하려고합니다. 모든 코드는 단일 솔루션에 포함되어 있으며 여러 UI 프로젝트 (WinForms, 웹 사이트 및 UWP, W8.1/WP8.1 및 Android 용 Xamarin 프로젝트)가 있습니다. TeamCity (10) 서버는 Windows에서 호스팅되며 Mac에서 수행해야하는 iOS 프로젝트를 제외한 모든 작업을 수행 할 수 있습니다.Xamarin iOS 프로젝트 및 빌드 서버

iOS 이외의 모든 것을 빌드하도록 솔루션을 구성했으며 Mac 빌드 에이전트를 사용하여 iOS 용 빌드를 수행하도록 다른 빌드 구성을 설정할 수있었습니다. 두 구성 모두 동일한 SVN VCS를 트리거로 사용합니다.

이상은 작동하지만 iOS 구성의 아티팩트를 기본 구성의 아티팩트에 결합 할 수 있기를 바랍니다.

두 빌드가 항상 동일한 소스에서 빌드되는지 확인합니다. 스냅 샷 종속성을 설정하여이 작업을 수행 할 수있는 것처럼 보이지만 iOS 구성은 트리거하기 전에 기본 구성이 완료되기를 기다립니다. 이상적으로는 둘 다 실행하고 결국 결과를 결합합니다.

내 질문은 어떻게 수행 할 수 있습니까? 컴파일 단계가 동시에 발생할 수 있으면 좋을 것이고 두 구성 중 하나가 컴파일 단계를 실패하면 기본 빌드가 단위 테스트/배포 단계를 계속 수행하지 못합니다. 필자는 필요한 경우 기본 빌드 구성을 추가로 해제 할 수 있지만 TeamCity 서버는 Windows에 있어야하므로 (Mac에서 모든 작업을 수행하는 것은 옵션이 아닙니다).

+0

MAC에서 Windows VM (Parallels 또는 VmWare)을 실행하는 방법은 어떻습니까? 그러면 TeamCity가 Windows VM에 남아있을 수 있으며 MAC –

+0

@YuriS와 파일을 쉽게 공유 할 수 있습니다. 내 질문 인 파일을 공유하지 않습니다. 이슈 종속성은 특정 문제를 해결할 가능성이 있지만 모든 부분이이 작업을 수행하는 것이 확실하지 않습니다. – Andy

답변

0

빌드를 세 가지 별도의 구성으로 분리하여이 작업을 수행 할 수있었습니다. iOS 빌드 만 한 프로젝트, Windows/Android 프로젝트를 빌드하는 프로젝트, 세 번째 시나리오는 두 가지 다른 구성에서 종속성을 가져 와서 빌드 프로세스 (예 : 단위 테스트, 패키징 등)를 계속 수행했습니다. 모든 빌드가 동일한 소스를 사용하도록 최종 빌드 구성에 대한 이슈 종속성 및 스냅 샷 종속성을 설정해야했습니다.

iOS와 android/Windows 빌드가 모두 실행되고 병렬로 실행되며, 둘 중 하나라도 실패하면 세 번째 구성이 시작되지 않습니다.

관련 문제