オープンソース システムのプラグインであるプロジェクトがあります。プラグインの CI ビルドを実行するには、メインのオープンソース システムの既存のインスタンスにインストールする必要があります。これでほぼ問題なく動作しましたが、メイン システムのインストール手順は長くて複雑なため、ビルドには時間がかかります。また、git からのプラグインのチェックアウトは常に最初に行われるため、設定するのも面倒ですが、適切なディレクトリが存在するようにメイン システムが配置された後に行う必要があります。私が現在持っている解決策は、組み込みの VCS を完全に無視して、インストールにシェル スクリプトを使用し、次にビルドに Ant タスクを使用することです。しかし、ハッキーに感じます。
2 つの解決策が思い浮かびます。
- ビルド ディレクトリにメイン システムを永続的にインストールします。ビルドの開始時にプラグインが追加され、最後に削除されます。私はこれを Jenkins でやりましたが、問題なく動作しましたが、現在は TeamCity を使用しています。
- 2 つの CI プロジェクト間にある種の親子関係を持たせて、メインのプロジェクトがビルドされ、その中でビルドされているプラグインのプロジェクトをトリガーします。これにより、必要なときにいつでもメイン システムを再ビルドできるようになり、ビルド間でメイン システムのインストールをクリーンに保つという厄介な問題が回避されます。
ただし、これが可能かどうかを知るには、TeamCity について十分に知りません。誰かがこれまでにこのようなことをしたことがありますか?