7

各コミットに統合する Xcode ボットを作成しました。

「Run Script」トリガーで、実行されたテストの統合ステータスで現在の GitHub コミットを更新したいと思います。かなり標準的な CI のもの。

Xcode ボット実行スクリプト

次に、以下のようなスクリプトを実行します。

curl -i -X POST -H "Content-type: application/json"
-H 'Authorization: token TOKEN_HERE' -d 
'{
"state": "success",
"target_url": "https://example.com/build/status",
"description": "The build succeeded!",
"context": "continuous-integration/jenkins"
}' 
https://api.github.com/repos/ORGANIZATION_HERE/REPO_HERE/statuses/SHA_HERE

Xcode Bot 環境変数からsuccessまたは状態を取得できるようです。failure

Xcode サーバー CI ボットの実行でビルド フォルダーにアクセスする (env 変数?)

ただし、現在のコミットの SHA は表示されません。この時点で統合に使用されるコミットの SHA を取得し、GitHub Status API リクエストで使用するにはどうすればよいですか?

4

3 に答える 3

3

Xcode Bot トリガーでこのコードを使用して、コミットの SHA を取得しています。

git -C ${XCS_SOURCE_DIR}/name_of_your_git_repo rev-parse HEAD

そして、これはブランチ名を取得します:

git -C ${XCS_SOURCE_DIR}/name_of_your_git_repo rev-parse --abbrev-ref HEAD

これにより、ソース ディレクトリで git コマンドが実行されます。「name_of_your_git_repo」を git のリポジトリの名前に置き換えます。

于 2015-06-05T15:52:36.013 に答える
1

XCS_OUTPUT_DIRというファイルがありますsourceControl.log。このファイルには、次のようなログがあります。

"DVTSourceControlLocationRevisionKey" : "3787c0d9e5107861a8b8d4c7300b2d414ad41dbb",

そのログを解析して SHA を見つけることができます。

おそらくもっと実際的には、CaveJohnsonは SHA をプルできます。

PATH=/Library/Frameworks/Python.framework/Versions/3.4/bin:$PATH
SHA=`cavejohnson getSha`

または、先に進んで GitHub ステータスをワンライナーとして設定することもできます。

#!/bin/bash
PATH=/Library/Frameworks/Python.framework/Versions/3.4/bin:$PATH
cavejohnson setGithubStatus

特に、成功と失敗だけでなく、より多くのステータスがあり、私が認識している少なくとも 6 つのステータスがあります。それらの詳細については、私のXcode 6 CI Missing Manualを参照してください。

于 2015-02-23T19:56:39.887 に答える