組み込みシステム用のビルド サーバーの経験についてお聞きしたいと思います。何を使用していますか (ある場合)、良い面と悪い面を教えてください。
主にオペレーティングシステムのないマイクロコントローラ向けに開発しています。
現時点では、Jenkins を使用しようとしており、ビルドが実行されています。しかし、プロジェクトの構造に問題があります。すべてのプラグインを機能させたい場合は、フラットなジョブ構造が必要です。しかし、並行して開発されているプロジェクトはほとんどなく、ジョブ ビューが乱雑になり始めます。フォルダーを試してみましたが、一部のプラグインが機能しなくなりました。
順次実行されているが、内部に並列ジョブがあるパイプラインを構築したいと考えています。例えば。コミット段階には、コンパイル、lint チェック、スタイル チェック、単体テストがあります。それらはすべて並行して実行でき、すべてが成功すると次のステージが実行されます。
現時点でビルドサーバーに必要なもの:
- ビルド パイプライン サポート
- LDAP に基づくユーザー認証
- 並列ジョブ実行
- 階層プロジェクト (プロジェクト/構成グループ)
- xUnit、Lint、コンパイラ警告、Robot フレームワークからのレポート。
スレーブ/エージェントのサポート、スレーブのタグ
LDAP グループに基づく特権
- グループ/プロジェクトごとの権限
私は、オープンソースおよび商用のあらゆる提案を受け付けています。ビデオでBambooを見ていましたが、とても良さそうですが、まだ試していません。
異なるプロジェクトを開発している 2 つの開発チームがあります。プロジェクトをチームごとにグループ化し、グループごとに特権を持たせるとよいでしょう。あるグループのメンバーは、他のグループのビルドを変更してはなりません。しかし、それは「なくてはならない」よりも「あるとうれしい」です。
チームシティ
TeamCity を使ってみました。ビルド パイプラインの構築は、Jenkins よりも簡単です。[ステップの追加] をクリックするだけです。
私が難しいと感じたことの 1 つは、1 つの構成で複数のステップを並行して作成することです。たとえば、コミット後、時間を節約するために、Lint、単体テスト、コンパイルを並行して実行したいと考えています。解決策を見つけましたが、パイプラインの表示と保守が難しくなります。
TeamCity は、ジョブのグループ化に関する問題を解決するプロジェクトで複数の構成をサポートします。プロジェクトをグループ化するオプションが見つかりませんでした。