1

オープンソース システムのプラグインであるプロジェクトがあります。プラグインの CI ビルドを実行するには、メインのオープンソース システムの既存のインスタンスにインストールする必要があります。これでほぼ問題なく動作しましたが、メイン システムのインストール手順は長くて複雑なため、ビルドには時間がかかります。また、git からのプラグインのチェックアウトは常に最初に行われるため、設定するのも面倒ですが、適切なディレクトリが存在するようにメイン システムが配置された後に行う必要があります。私が現在持っている解決策は、組み込みの VCS を完全に無視して、インストールにシェル スクリプトを使用し、次にビルドに Ant タスクを使用することです。しかし、ハッキーに感じます。

2 つの解決策が思い浮かびます。

  1. ビルド ディレクトリにメイン システムを永続的にインストールします。ビルドの開始時にプラグインが追加され、最後に削除されます。私はこれを Jenkins でやりましたが、問題なく動作しましたが、現在は TeamCity を使用しています。
  2. 2 つの CI プロジェクト間にある種の親子関係を持たせて、メインのプロジェクトがビルドされ、その中でビルドされているプラ​​グインのプロジェクトをトリガーします。これにより、必要なときにいつでもメイン システムを再ビルドできるようになり、ビルド間でメイン システムのインストールをクリーンに保つという厄介な問題が回避されます。

ただし、これが可能かどうかを知るには、TeamCity について十分に知りません。誰かがこれまでにこのようなことをしたことがありますか?

4

1 に答える 1

2

ソリューション番号2では、「ビルドトリガー」構成を使用してみることができます。「ビルドトリガーを終了」オプションは、親子関係を非常にうまく解決するはずです。

TC で、プラグインのビルド構成に移動し、「構成ステップ」セクションで「ビルド トリガー」(5 番) を選択し、次に「新しいビルド トリガーを追加」を選択し、メイン システムのビルド構成を選択して「ビルド トリガーを終了」を構成します。

子ディレクトリで親ディレクトリを使用するには、「アーティファクト依存関係」を使用する必要があります (「構成手順」の「依存関係」セクションを参照してください。ビルド構成間でスナップショットを設定することもできます。

Artifact Dependencies : artifact Dependencies は、あるビルドの出力 (アーティファクト) を別のビルドで使用するための便利な手段を提供します。アーティファクトの依存関係が構成されると、ビルドが開始される前に、必要なアーティファクトがエージェントにダウンロードされます。

スナップショットの依存関係: ビルド (ビルド B など) の依存関係を他のビルド (ビルド A の) ソースに設定することで、依存するビルド (ビルド A) が実行されて終了した後にのみビルド B が開始されるようにすることができます。

Finish Build Trigger の構成: 選択したビルド構成のビルドが終了した場合、finish build トリガーは現在のビルド構成のビルドをトリガーします

于 2013-09-04T11:59:36.643 に答える