質問

複数のホスト (Linux と Windows など) でコンパイルして実行する必要があるコードを開発しているとします。次のことを考慮すると、最も効率的な方法でそれを行うにはどうすればよいでしょうか。

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

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

役に立ちましたか?

解決

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

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

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

Pulseにもあるようです 同じ機能, しかし、私には直接の経験がありません。

他のヒント

私が一番お勧めできるのは、「BuildBot」という素晴らしいクロスプラットフォーム プロジェクトです。

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

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

以下にいくつかの URL を示します。

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

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

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

もちろん、実際のリリースを行う前に、人間によるテストを行う必要があります。しかし、これにより残りの時間は人生が正気で保たれます。

使用 http://ccache.samba.org 大規模なプロジェクトで少数のファイルのみが変更された場合のコンパイルを高速化するため、

大きな変更が加えられた場合には、 http://en.opensuse.org/Icecream 同時に共有分散コンパイルも可能です。

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

CI を使用しているため、ビルド プロセスがすでに適切に設定されていると思います。私たちがやっていることは、Windows ボックスを開発マシンとして使用し、CI を Solaris 上で実行していることです。これにより、コードが複数のプラットフォームで適切にコンパイルされることが保証されます。コードは Java であり、ネイティブ ライブラリを使用していないため、コードが動作することが完全に保証されています。私たちは職場で Bamboo を使用しています。これは素晴らしいですが、無料ではありません:-)

プライベート プロジェクトでは Continuum を使用していますが、Husdon は見た目がきれいです (試してみます) - Peter に感謝します。

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

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

1つの選択肢は次のとおりです カスケード, これにより、サーバー上で変更を「チェックポイント」することで、コミット後ではなく、すべてのプラットフォームで変更をテストできます。

一言: クルーズ (クルーズコントロールではありません)とてもいいです。

無料で 2 つのエージェントを入手でき、プラットフォームごとに 1 つのエージェントを入手できます。Mac や PC でのセットアップには文字通り数分かかりますが、聞いたところによると、Linux でもそれほど悪くはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top