2

Xcode ボットに問題があります。プロジェクトをコンパイル、テスト、およびアーカイブすることはできますが、最後のコミットのコード レビューを行ったかどうかを確認する外部ツールを使用したいと考えています。コードレビューがなければビルドを中止できるようにしたいです。exit 1またはスクリプトに追加しようとしましたが、ビルドプロセス全体ではなく、指定exit 0されたpre-buildスクリプトが終了するだけです。私の質問は、Xcode ボットのビルド (統合) を中止するにはどうすればよいですか?

4

2 に答える 2

3

技術的には可能です。統合をキャンセルすると、すぐに中止されます。ここで説明したコマンド ラインからの統合のトリガーと非常によく似たプロセスですが、最初_idにエンドポイントを使用して呼び出すことで統合を確認する必要が/xcode/api/bots/BOT_ID/integrationsあり、最初の統合が最新である必要があります。をコピーして_id、 で POST を呼び出すと/xcode/api/integrations/INTEGRATION_ID/cancel、統合がキャンセルされます。

ツールBuildasaurでこれらすべての API を使用しているので、詳細についてはソース コードを確認してください。

于 2015-05-05T20:31:05.527 に答える
0

czechboy's answer のおかげで、ここにコピー&ペーストの友達のための解決策があります。統合前のスクリプトとして次のようなものを使用します。

#!/bin/sh

# something returning an error code like:
${XCS_PRIMARY_REPO_DIR}/customPreIntegrationConfiguration.sh

# if script exits with error code 1:
if (( $? )); then
    echo "canceling integration ${XCS_INTEGRATION_ID}..."
    curl -kX POST "https://localhost:20343/api/integrations/${XCS_INTEGRATION_ID}/cancel"
fi

$?最後のコマンド (この場合はスクリプト) の終了コードをチェックします。どこかでパイプを使用している場合、set -o pipefailパイプ コンポーネントが 1 つだけ 1 を返す場合、使用して 1 を返す必要がある場合があります。

于 2016-09-15T15:16:43.383 に答える