13

各ボット統合中に動的に作成されるフォルダーにアクセスする必要があります。実行の1つで、次のようなものです-

/Library/Developer/XcodeServer/Integrations/Caches/ a3c682dd0c4d569a3bc84e58eab88a48 /DerivedData/Build/Products/Debug-iphonesimulator/my.app

投稿トリガーでこのフォルダーにアクセスしたいのですが、どうすればよいですか? wwdc の話によると、「XCS_INTEGRATION_RESULT」や XCS_ERROR_COUNT などの環境変数が使用されているようです。また、ログで PROJECT_DIR のようなものを見ることができます。

しかし、コマンドラインからこれらの変数のいずれにもアクセスできません (ボットとは別のユーザーであるためですか?) また、この CI システムによって作成された変数のリストはどこにありますか?

4

3 に答える 3

25

ボット ログに設定をエコーし​​てきました。ボット スクリプトの最初の行は単純です。

set   

統合が完了した後にログを表示すると、トリガー出力に表示されます。

XCS_ANALYZER_WARNING_CHANGE=0
XCS_ANALYZER_WARNING_COUNT=0
XCS_ARCHIVE=/Library/Developer/XcodeServer/Integrations/Integration-76eb5292bd7eff1bfe4160670c2d4576/Archive.xcarchive
XCS_BOT_ID=4f7c7e65532389e2a741d29758466c18
XCS_BOT_NAME='Reader'
XCS_BOT_TINY_ID=00B0A7D
XCS_ERROR_CHANGE=0
XCS_ERROR_COUNT=0
XCS_INTEGRATION_ID=76eb5292bd7eff1bfe4160670c2d4576
XCS_INTEGRATION_NUMBER=15
XCS_INTEGRATION_RESULT=warnings
XCS_INTEGRATION_TINY_ID=FF39BC2
XCS_OUTPUT_DIR=/Library/Developer/XcodeServer/Integrations/Integration-76eb5292bd7eff1bfe4160670c2d4576
XCS_PRODUCT='Reader.ipa'
XCS_SOURCE_DIR=/Library/Developer/XcodeServer/Integrations/Caches/4f7c7e65532389e2a741d29758466c18/Source
XCS_TESTS_CHANGE=0
XCS_TESTS_COUNT=0
XCS_TEST_FAILURE_CHANGE=0
XCS_TEST_FAILURE_COUNT=0
XCS_WARNING_CHANGE=36
XCS_WARNING_COUNT=36
于 2014-09-30T16:08:59.770 に答える
9

@Viktorは正しいです。これらの変数は、それぞれのセッション中にのみ存在します。@Pappy は、これらの変数の優れたリストを提供しました。

次のようなスクリプトで使用できます。

IPA_PATH="${XCS_OUTPUT_DIR}/${XCS_BOT_NAME}.ipa"
echo $IPA_PATH
于 2014-10-17T01:43:12.067 に答える
3

私はXcodeサーバーに精通していませんが、一般的にUnix / CIシステムでは、環境変数をエクスポートすると、現在のセッションにのみエクスポートされます。

環境変数を永続的に設定したい場合は、 ~/.bash_profile や ~/.bashrc などの初期化ファイルに設定する必要があるため、シェルセッションの開始時に常に設定/ロードされます (例: ターミナルでログインするとき -正確なファイルは、起動するシェルの種類によって異なります)。

これらを永続的にエクスポートすることもあまり意味がありません。その場合、異なる統合を実行すると、エクスポートされた他の環境変数が単純に上書きされるためです (それらは同じ環境変数を設定します)。

そのため、環境変数を介して通信するシステムは通常、変数を永続的な初期化ファイルに書き込まず、変数をエクスポートするだけです。exportを使用すると、変数は、それをエクスポートするプロセスからアクセスでき、子プロセスからプロセスが開始されます

たとえば、bash スクリプトで変数をエクスポートすると、エクスポート後に bash スクリプトから、および bash スクリプトから開始する任意のコマンド/プログラムから変数にアクセスできますが、bash スクリプトが終了すると、環境にアクセスできなくなります。

編集 少し明確にするために:Xcodeサーバーによって実行されるポストトリガースクリプトからこれらの環境変数にアクセスできるはずですが、ターミナル/コマンドラインからこれらにアクセスできない可能性があります。

また、この CI システムによって作成された変数のリストはどこにありますか?

envコマンドを使用して、使用可能なすべての環境変数を出力できます。bash スクリプトでは、次のように新しい行にenvと入力するだけです。

#!/bin/bash
env

これにより、使用可能なすべての環境変数が出力されます (Xcode サーバーによって定義されたものだけではありません!)。必要に応じて、次のように検査のためにファイルにパイプするだけです。

#!/bin/bash
env > $HOME/envinspect.txt

このスクリプトの実行後は、ユーザーのホーム フォルダーにある envinspect.txt ファイルを開くだけです。

于 2014-08-05T09:31:26.763 に答える