2

複数のホスト (Linux と Windows など) でコンパイルして実行する必要があるコードを開発しているとします。

  • コンパイルしている各ホストのハードウェアに完全にアクセスできます (私の場合、Linux ホストと Windows ホストが机の上に立っています)。
  • ネットワークドライブを介した構築は高すぎる
  • 中央リポジトリへのコミットは必要ありません -- 何かがチェックインされるとすぐに構築を試みる CI エンジンがあるとします。

「効率的」とは、コンパイル、編集、実行のサイクルをできるだけ短くシンプルに保つことを意味します。

4

9 に答える 9

3

私がお勧めできる最高のものは、「BuildBot」と呼ばれる素晴らしいクロスプラットフォーム プロジェクトです。

BuildBot は、新しいリビジョンをソース管理システムにチェックインするたびに、サポートするすべてのプラットフォームでビルドを自動的に発生させることができます。OSX、Linux (ubuntu)、Linux (debian)、Linux (Redhat)、Vista、Windows XP などでビルドし、ビルドが失敗したときに電子メールを送信するか、好きなものを送信します。

ビルド プロセスの一環として、テストに合格した場合はバイナリを公開できます。「毎晩」または「最先端」のビルドに役立ちます。

ここにいくつかの URL があります:

  • Buildbot.net ホームページ
  • Python.org のビルドボット
于 2008-09-18T07:35:20.957 に答える
1

他の回答で言及されているビルドサーバーのほとんどは、バージョン管理システムから変更をチェックアウトします。「中央リポジトリへのコミットは必要ありません」という要件を考えると、Jetbrains TeamCity CI サーバーを試すことをお勧めします。

Visual Studio および Eclipse 用のプラグインがあり、「プライベート ビルド」を要求して、変更をビルド サーバーに直接送信できます。プロジェクトごとに、さまざまな要件を持つ多数のビルド構成を定義できます (OS は可能な要件の 1 つです)。ビルドが成功すると、プラグインは変更をコミットするように促します。

無料版は 3 つのエージェントをサポートしており、必要に応じてさらに購入できます。

Pulseにも同じ機能があるようですが、私はそれを直接経験したことはありません.

于 2008-09-18T21:18:54.407 に答える
1

Hudsonは、必要に応じてソース管理からビルドを実行できる優れた CI サーバーであることがわかりました。Java で記述されているため、選択したターゲット プラットフォームで実行でき、インターフェイスは Web ベースであるため、どこからでも制御できます。あなたがやりたいことのほとんどを行うためのプラグインがあり、何よりも無料です!

于 2008-09-18T07:23:05.417 に答える
0

開発ボックスとして 1 台のマシンを選択します。

ソース管理から定期的に (毎時/毎日/何でも) 自動的に更新するようにもう 1 つをセットアップします。ビルド/テストが失敗すると、何らかの警告メッセージが送信されます。(メール、im、なんでも)。非開発ボックスには独自のツリーのコピーがあるため、まだローカルでビルドされています。

もちろん、実際のリリースを行う前に、人間によるテストを行いたいと考えています。しかし、これは残りの時間、人生を正気に保ちます。

于 2008-09-18T07:18:04.397 に答える
0

このようなタスクの簡単なセットアップを構築するのは非常に簡単です。Cygwinを Windows プラットフォームで使用
することをお勧めします。このようにして、Linux と Windows の両方のプラットフォームで完全に移植可能なソフトウェア/スクリプトを作成できます。あなたがプロジェクトのどの段階にいるかは明確ではありませんが、あなたが始めたばかりであると仮定すると、makeを使用してソフトウェアを構築することをお勧めします。cron を使用して、チェックアウト/ビルド サークルの頻度をスケジュールできます。壊れている場合は、ビルド ログをメールで送信することもできます。 商用およびオープンソースの両方で、グーグルで検索できる、または誰かがここに提案を追加する可能性のある、準備が整った毎日のビルドテストが多数あります。 そのタスクには自家製のツールを使用しているため、既製のものを提案することはできません.

わかりました、ソース管理システムを使用したくないという点を見逃しました(これは奇妙ですが、あなたは上司です:))この場合、チェックアウトをrsyncに置き換えるだけで、他のすべては同様のままです.

于 2008-09-18T07:29:50.390 に答える
0

http://ccache.samba.orgを使用して、大規模なプロジェクトでいくつかのファイルのみが変更された場合にコンパイルを高速化します。

大きな変更が加えられた場合は、http://en.opensuse.org/Icecreamを同時に共有分散コンパイルに活用してください。

これにより、コンパイル、編集、実行のサイクルが大幅に短縮されるはずです。

于 2008-09-18T07:34:07.900 に答える
0

CI を使用しているため、ビルド プロセスは既に適切にセットアップされていると思います。私たちが行っていることは、Windows ボックスを開発マシンとして使用しており、CI は Solaris 上で実行されているということです。これにより、コードが複数のプラットフォームで適切にコンパイルされることが保証されます。コードは Java で書かれており、ネイティブ ライブラリを使用していないため、コードが確実に機能することが保証されています。私たちは仕事でBambooを使用しています - それは素晴らしいですが、無料ではありません:-)

私の個人的なプロジェクトでは Continuum を使用してきましたが、Husdon は見栄えがします (試してみます) - Peter に感謝します。

于 2008-09-18T07:36:31.747 に答える
0

1つのオプションはCascadeです。これにより、サーバー上で「チェックポイント」を設定することにより、コミット後ではなく、コミット前にすべてのプラットフォームで変更をテストできます。

于 2008-09-18T23:43:44.153 に答える
0

一言:クルーズ(クルーズコントロールではない)はとてもいいです。

無料で 2 つのエージェントを取得でき、プラットフォームごとに 1 つのエージェントを取得できます。mac と pc でのセットアップには文字通り数分かかり、Linux でのセットアップはそれほど悪くないと聞いています。

于 2008-09-19T17:18:10.520 に答える