2012-02-06 4 views
13

iOS 프로젝트에 대한 종단 간 자동화. 내 목표는 연속 빌드를 포스트 빌드 작업으로 UIAutomation 스크립트를 첨부하여 자동화하는 것입니다. 그래서 사용자가 SVN에서 코드를 확인하고 자동화의 테스트 결과를 얻을 때까지 모든 것이 자동화됩니다.포스트 빌드 젠킨스에서 실행되지 않는 UIAutomation 스크립트

Jenkins은 내 로컬 컴퓨터에 설치되어 있으며 localhost에서 실행됩니다.
이제 jenkins을 통해 자동화 된 프로세스를 구축하고 다른 끝에서 빌드 출력에 UIAutomation 자바 스크립트를 실행할 수있는 셸 스크립트를 준비했습니다.
쉘 스크립트를 포스트 빌드 액션으로 사용할 때 (쉘 스크립트로 작성된) 계측기 명령을 실행하는 데 오류가 발생하지만 터미널을 통해이 스크립트를 수동으로 실행하면 정상적으로 작동합니다. 나는 오류 sudo는 다음과 같은 상태가 정상

instruments[64703:60f] -[NSAlert alertWithError:] called with nil NSError. A generic error message will be displayed, but the user deserves better. 
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. Mon Feb 6 13:15:20 inpunml310743 instruments[64703] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. 2012-02-06 13:15:20.179 instruments[64703:60f] Recording cancelled : At least one target failed to launch; aborting run Instruments Trace Error : Failed to start trace. Build step 'Execute shell' marked build as failure Finished: FAILURE 
다음

내가 sudo는이 명령을 시도 : 더 TTY 존재없고 askpass 프로그램은

은 제가이 명령 성공 만이 실행할 수있는 방법을 알려 주시기 바랍니다 지정 단계는 내 작업에 남아 있습니다.

+0

합니까 젠킨스는 당신의 컴퓨터에서 서비스로 실행? 그렇다면 어떤 사용자가 서비스를 실행하는 데 사용됩니까? – ingorichter

+0

Mac에서 공유 계정을 사용하고 있습니다. 패키지를 설치할 때 위치/사용자를 선택하고 공유 폴더에 설치할 수있는 옵션이 없습니다. – vikas

+3

Jenkins는 데몬으로 실행 중이므로 Windows 서버에 연결할 수 없습니다. 자세한 내용은 https://developer.apple.com/library/mac/#technotes/tn2083/_index.html을 참조하십시오. – ingorichter

답변

1

죄송합니다 - 나중에 업데이트 할 것입니다, 지금은 완전한 답변을 넣어 시간이 없어 ....

당신은 사용자 응용 프로그램으로보다는 데몬으로 젠킨스를 실행하는 경우이 가능 -이 유용하게 사용할 수 있습니다 (https://github.com/stisti/jenkins-app) 나는 그것을 시도하지는 않았지만 작동해야하는 것처럼 보입니다. 로그인 스크립트에서 젠킨스를 실행하는 항상 로그인 한 사용자를 설정하는 다른 라우트를 내려갔습니다. 젠킨스를 다시 설치해야하지만 관리해야한다는 의미였습니다. 그것을 시작하고 실행하는 ... 그것을 통해 누군가가 경고의 말씀, 자동화 된 테스트를 위해 악기를 사용하고 있습니까? 그렇다면 젠킨스에 출력되도록 일부 출력을 변환해야합니다.

0

우리는 SSH를 통해 Mac 슬레이브를 빌드하는 Jenkins Linux 인스턴스가 있습니다. 우리가이 오류로 알아 차린 한 가지 흥미로운 요구 사항은 모든 것이 제대로 작동하려면 슬레이브의 빌드 사용자가 콘솔에 로그인해야한다는 것입니다.

또한 빌드 사용자를 Admin으로 만들고 개발자 권한이 충분하지 않아야했습니다.

기본적으로 젠킨스

UIAutomation : Failed to authorize rights with status: -60007

3

그것이 WindowsServer을 발사 할 수있는 권한을 가지고 의미 LaunchDaemon로 설치합니다

더 여기에 정보를 참조하십시오.

당신은 LaunchAgent로 구성해야합니다 :

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist 
sudo mv /Library/LaunchDaemons/org.jenkins-ci.plist /Library/LaunchAgents/org.jenkins-ci.plist 

그런 다음 젠킨스로 로그인 오픈 세션을 유지한다.당신은 당신이 그것을 변경할 수 있습니다 젠킨스 암호를 모르는 경우

:

sudo passwd jenkins 
관련 문제