2016-02-16 9 views
6

TeamCityの動作に関する私の見解から、ビルドの失敗条件がすべてのステップの実行後に評価されていることがわかりました。ビルドの失敗条件のいずれかが満たされていれば実行できないステップができないので、これはかなり面倒です。ビルド失敗条件でTeamCityのステップをスキップする必要があります

「少なくとも1つのテストに失敗しました」などの一般的なビルドの失敗条件を参照しているわけではありません。私は、メトリックの変更など、手動で追加された障害状態を指しています。

ビルドログを確認すると、すべてのステップが実行され、最後にビルドの失敗条件が評価され、エラーがあればそれが記録されます。しかし、それは条件付きステップ(「ビルド状況が成功した場合にのみ実行する」に基づいて失敗しなければならなかった)がすでに実行されているので、プロセスでは遅すぎます。

質問:これをどのように達成できますか?

上記からわかるように、私は既に条件付きステップを試してビルド失敗条件を追加しましたが、希望の結果を達成できませんでした。明快ため

追加:

は基本的に、私は、アプリケーションをデプロイ手順を持っています。しかし、ビルドの失敗条件が満たされていれば、私は展開してはならないと私は期待しています。私が持っているビルド失敗条件の例は、メトリックの変更です。明らかに、これはビルドの失敗状態として表現することができ、ビルドの状態がうまくいかない場合に失敗するビルド・ステップを持つことができます。しかし、ビルド・ステップがどのように振る舞うのではないかと思われるので、私は困惑しています(ビルド・ステップの条件の目的だと思いました)。私は何が欠けていますか?

答えて

0

すべてのビルドステップが完了したらビルドの失敗条件がチェックされるからです。メトリックの変更のような条件では、ビルドが完了するまで待つ必要があるため、ビルドが完了するまで、成果物のサイズを計算したり、ログや特定のテキストを探したりすることはできません。

あなたのケースでは、失敗時にゼロ以外の終了コードで終了するビルドステップを記述してから、Execute stepbuild stepIf all previous steps finished successfullyオプションを使用することができます。

+0

したがって、ビルドの失敗条件が満たされた場合に、ユニットテストの手順をゼロ以外のコードで終了することをお勧めしますか?ビルドの失敗条件に基づいてゼロ以外のコードを返すにはどうすればよいのですか? – Tengiz

+0

ビルドの失敗条件に基づいていない - ユニットテストを実行中で、ユニットテストが失敗した場合、ユニットテストを実行しているステップはゼロ以外の終了コードを返します。あなたが単体テストをどのように動かしているかについてのさらに詳しい情報が役立つかもしれません。たとえば、チームシティのNUnitプラグインを使用してNunitテストを実行すると、テストが失敗した場合にゼロ以外の終了コードで終了します。 –

+0

あなたの意見があります。しかし、単体テストは失敗しておらず、ビルド失敗の条件だけが真です。つまり、すべての単体テストが合格しましたが、カバレッジはN%減少しました。私はカバレッジが落ちたかどうかをチェックするビルド失敗条件を持っています。それが落としたら、ビルドは失敗とマークされます。ユニットテストは失敗しません。ビルドの最後には、失敗とマークされているため、ビルドの失敗状況は正常に動作します。カバレッジが低下した場合(ビルドの失敗条件が満たされた場合を意味します)、最後のステップ(展開)をスキップするだけです。 – Tengiz

関連する問題