ポストビルドUIAutomationスクリプトがジェンキンズで実行されていない

iOSプロジェクトエンドツーエンド自動化を実行しようとしています。私の目標はビルド後のアクションとして UIAutomation スクリプトを付けることで継続的統合プロセスを自動化することです。 だから、ユーザーがSVNでコードをチェックし、自動化のテスト結果を得るまで、すべてが自動化されます。

Jenkins is installed on my local machine and running on localhost.
Now I have automated build process through jenkins and at other end I have my shell script ready which will run UIAutomation java scripts on build output.
When I use my shell script as post build action then I get error in running instrument command(written inside shell script) but if I run this script manually through terminal then it works fine.

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] : 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

then i tried this command with sudo then I got following error sudo: no tty present and no askpass program specified

これらのコマンドをどのようにして成功させることができるのか教えてください。私の仕事にはこのステップだけが残っています。

13
@ingorichterはそれを答えとして投稿します。
追加された 著者 Heath Borders,
Jenkinsはあなたのマシン上でサービスとして動作しますか?その場合、サービスを実行するためにどのユーザーが使用されますか?
追加された 著者 ingorichter,
Jenkinsはデーモンとして動作しているため、ウィンドウサーバーに接続することはできません。詳細はこちら developer.apple.com/library/mac/#technotes /tn2083/_index.htm‌ l
追加された 著者 ingorichter,
それはMac上で共有アカウントを使用しています。私たちがパッケージをインストールするときには、場所/ユーザを選択して共有フォルダにインストールするオプションはありません。
追加された 著者 vikas,

4 答え

Jenkinsは、デフォルトでLaunchDaemonとしてインストールされます。つまり、WindowsServerを起動する権限がありません。

LaunchAgentとして設定する必要があります:

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

その後、Jenkinsとしてログインし、セッションを開いたままにしておきます。

Jenkinsのパスワードがわからない場合は、次の方法で変更できます。

sudo passwd jenkins
3
追加された

Jenkinsはデーモンとして動作しているため、ウィンドウサーバーに接続することはできません。詳細はこちら http://developer.apple.com/library/mac /#technotes/tn2083/_index.html

2
追加された

申し訳ありません - 今すぐ完全な答えを入れる時間がなく、後で更新されます....

これは、ジーンズをデーモンではなくユーザーアプリとして実行する場合に可能です。これは便利な機能です( https ://github.com/stisti/jenkins-app )私はそれを試していないが、それはうまくいくように見える - 私は別のルートを設定し、常にログインしているユーザーを設定し、スクリプトでは、私はジェンキンを再インストールしなければならなかったが、それを起動して実行することができたということを意味した...それを通過した人からの警告の言葉、もしそうなら、あなたはジェンキンスに表示されるように、出力にある変換を行う必要があります。

1
追加された

私たちには、SSH経由のMacスレーブに構築されたJenkins Linuxインスタンスがあります。このエラーで気づいた興味深い要件の1つは、スレーブ上のビルド・ユーザーがすべてが正常に動作するためにコンソールにログインする必要があるということです。

さらに、ビルドユーザーを管理者にしなければならず、開発者権限が不十分でした。

詳細はこちら:

UIAutomation : Failed to authorize rights with status: -60007

0
追加された