5

これに関するドキュメントが見つからないことに驚いていますが、とにかく...

時々、TeamCity ビルドがハングし、最終的に停止する必要があります。ビルド プロセスはディスク上にいくつかのログ ファイルを生成し、TeamCity はビルド アーティファクトとして公開します。ただし、ビルドを停止すると、TeamCity はログの公開を拒否します。

Build was interrupted. Artifacts will not be published for this build

ファイルはまだディスク上に存在しますが、TeamCity がそれらを公開しなくなっただけです。そもそもビルドがハングした理由を突き止めることができるように、これらのログの内容を実際に確認する必要があるため、これは特に腹立たしいことです。

ビルドを中止しなければならない場合でも、TeamCity にビルド アーティファクトを常に公開させる方法はありますか?

(ビルドが失敗した場合に TeamCity のアーティファクトの公開を停止する方法を尋ねるいくつかの質問を見たので、セットアップがまだこれを行っていない理由について少し困惑していますが、とにかく...)

PS。ビルドサーバーに手動でログインしてログを表示できることはわかっていますが、TeamCity の全体的なポイントは、そのようなことを自動化することです...

4

3 に答える 3

4

ハング ビルドの検出を有効にすることは、一般的には良い考えだと思います (終了までに n 分以上かかるビルドに失敗条件を設定できます)。最終的に停止/ハングする場合、次のものが役立つ場合があります。

TeamCity サービス メッセージを出力して、アーティファクトをすぐに公開できます。これらのアーティファクトは、ビルドが停止された場合でも引き続き使用できます。例:

##teamcity[publishArtifacts '/tmp/logfile => logs']

これにより、ファイル/tmp/logfileが artifacts ディレクトリに公開されますlogs

追加の利点は、ビルドの成果物タブでこれらの成果物をすぐに利用できるようにすることです。これは、ビルドをキャンセルするかどうかを決定するのに役立ちます。

于 2014-04-04T07:06:44.600 に答える
2

TeamCity には、失敗したビルドとは異なり、停止したビルドで公開する方法がありません。停止されたビルドは強制終了されたプロセスに似ていますが、失敗したビルドはゼロ以外の終了コードです。

代わりに、ビルドを停止する必要がないように、TeamCity を構成することをお勧めします。有効にするオプションは 2 つあります。ハング ビルド検出と「it runs long than」ビルド失敗状態です。どちらも、TeamCity がビルドを停止するのではなく、ビルドを自動的に終了するのに役立ちます。

このようにして、停止したビルドではなく失敗したビルドを取得し、アーティファクトを公開する必要があります。

于 2013-09-05T16:34:12.790 に答える