54

이전 프로젝트와의 지속적인 통합을 위해 Hudson을 사용한 후 지금 작업하고있는 iPhone 프로젝트에 대해 지속적인 통합 서버를 설정하려고합니다. 몇 가지 조사를 한 후에 Xcode 용으로 특별히 고안된 CI 엔진이없는 것처럼 보이지만 한 사람은 성공했습니다 using Cruise Control combined with the xcodebuild CLI tool. 여기 누가 이걸 시도 했습니까? Xcode 프로젝트와 잘 작동하는 CI 엔진이 있습니까?Xcode 프로젝트를위한 지속적인 통합?

나는 아마도 Cruise Control을 시도 할 것입니다. 나는 나의 발견과 함께 대답을 게시 할 것이다.

+0

링크가 –

+0

확인 작업 [rultor.com] (http://www.rultor.com). [격리 된 Docker 컨테이너에서 모든 빌드를 실행하는] 호스팅 된 솔루션입니다 (http://www.yegor256.com/2014/07/29/docker-in-rultor.html). 내가 아는 한 Docker에서 Xcode를 실행하는 것이 가능합니다 – yegor256

+0

@ yegor256 Xcode로 Docker를 실행하는 것이 실제로 가능합니까? 내가 도커 허브에서 OS의 X에 기본 이미지를 발견하지 않았다 :( – Ponf

답변

36

xcodebuild를 사용하여 Mac에서 Hudson을 사용하고 있습니다. 3.0 iPhone SDK의 출시로 인해 대상, 구성 및 SDK에 대해 프로젝트를 구축하기 위해 경쟁 할 수 있습니다.

그것은 허드슨에서 빌드 단계를 만들고 프로젝트를 빌드 할 xcodebuild 말하는 것만 큼 간단합니다 : 내 단지 추가 생각없이 작동 빌드로

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1 

선행 작업이 나를 위해 돈을 지불했다. 관심이 있다면 내 블로그에 대한 자세한 설명을 작성했습니다.

iPhone app distribution made easy

+0

귀하의 링크는이 "페이지를 찾을 수 없습니다":( – Spanky

+1

@Spanky에 해결! - 나는 Silencode의 블로그에 링크를 업데이트 – itsmatt

9

Adium은 Xcode와 함께 buildbot을 사용하고 있습니다. 우리는 적절한 타겟과 설정으로 xcodebuild를 호출하는 간단한 makefile을 작성했지만, 이것이 선택 사항이라고 확신한다.

+0

감사합니다, 나는. 어 ... (! 오프 주제 주석 죄송 –

+5

에이디 엄 바위가 체크 아웃 것 몇 가지를 보여줄 수있는 기회를 저항 할 수 없었다 .. 감사는) – pestophagous

4

허드슨을 계속 사용할 수 있어야한다고 생각합니다. 허드슨은 매우 유연하며 빌드를 위해 셸 스크립트를 사용할 수도 있습니다. Shell Scripts and Windows Batch Commands

xcodebuild 만 입력하면됩니다. xcodebuild의 옵션을 보려면 xcodebuild 맨 페이지를보십시오.

8

필자는 CruiseControl을 Xcode (Pragmatic Automation이 제안한 것과 유사 함)와 함께 사용했으며 합리적으로 성공했습니다. 나는 또한 CruiseControl에 매우 익숙하며 비교적 무시 무시한 구성 형식 설정입니다.

나는 또한 BuildBot를 사용하여 효과를 보았지만 강점이 내 요구 사항 (분산 된 슬레이브를 작성하고 여러 시스템에 걸쳐보고)과 실제로 일치하지 않는다는 사실을 발견했습니다. buildbot 설정을 구성하는 것은 그다지 어렵지는 않지만 그 자체로 예술 일 수 있습니다. 기본적으로 파이썬으로 스크립트를 작성합니다.

허드슨 (Hudson)이 나왔으므로 계속 통합을 실행하기위한 수단으로 사용하시기 바랍니다. 그것은 웹 기반 인터페이스 (내 마음에 CruiseControl의 주요 결함)을 가지고 있으며 그것이 지원하는 다양한 시스템에서 매우 유연합니다. 명령 행 기반 빌드를 아주 쉽고 분명하게 호출 할 수 있습니다. 즉, 다른 시스템에서 사용하고있는 Hudson과 Xcode를 사용하여 인스턴스를 설정하지 않았으므로 이것이 부분적으로 추측입니다.

4

당신이 최첨단에 살고 있어도 상관 없다면 나는 CruiseControl에 xcode builder을 투입했다.

13

이 스레드 부활. 빌드 서버에서 유닛 테스트를 통해 자동화 된 XCode 빌드를 얻는 것에 대한 만족스러운 해결책을 찾지 못했기 때문에 조사하고 코딩했습니다. 결과는 모두 this blog post이며, xcodebuild의 OCUnit 출력을 JUnit이 테스트 보고서 용으로 사용하는 XML 형식으로 변환하는 this Ruby script입니다. 내가 선택한 빌드 서버는 Hudson입니다.

2012 년 3 월 2 일 업데이트 : 빌드하고 실행하기 위해 일부 사용자 지정 셸 스크립트를 사용하도록 업데이트했습니다.이용 가능 here. 지속적인 통합뿐 아니라 자체 시스템의 명령 줄을 사용하여 구축하는 것이 좋습니다.

0

젠킨스 잘 작동합니다. 자신 만의 쉘 스크립트를 작성하여 젠킨스가 실행하도록하거나, xcode 플러그인을 사용하여 xcode 프로젝트를 빌드 할 수 있습니다.

그러나 권한 문제에 대해 알고 있어야합니다. 젠킨스 구성을 약간 조정하면 아주 짧은 시간에 CI 서버를 관리 할 수 ​​있습니다.

9

애플은 OSX 매버릭스 (OS X 10.9) 내가 전에 본 가장 통합 지속적인 통합 솔루션 인 새로운 지속적인 통합 플랫폼 (6 월 10 일, 2013) 놓습니다. 는 여기이 페이지에서, developer.apple.com에서 사용할 수있는 세부 사항이 있습니다

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

내가 주제에 WWDC 2013 프레젠테이션을 참조하는 것이 좋습니다. 어떤 logner 위의 의견에

+0

이 대단한 엑스 코드는 드디어 적절한 테스트 도구를 점점 – LightningStryk

관련 문제