オープンソース アプリをさまざまな OS に対してチェックするためのビルド ファームはありますか?
-
03-07-2019 - |
質問
私はオープンソースアプリを持っており、Windows、Linux、Macintoshで動作します(C++でgccで構築されています)。私は Linux のいくつかの異なるフレーバーでしかテストしていないため、すべての異なる Linux バージョンでコンパイルして実行できるかどうかはわかりません。コードをアップロードして、他の Linux フレーバーや Solaris、FreeBSD、その他のオペレーティング システムなど、さまざまなシステムでテストできる場所はありますか?
SVN リポジトリに直接接続して最新のコードを取得し、生成されたコンパイル エラーと問題が発生した OS を電子メールで返信できれば素晴らしいのですが。
これは GUI ベースのアプリであるため、実際に実行してテストすることは期待できないため、コンパイルが完了することがわかれば幸いです。
解決
いくつかのオプションがありますが、このような無料サービスはあまり (まったく?) ないようです。必要な労力とリソースの量を考慮すると、これは驚くべきことではありません。Sourceforge は、あなたが説明したようなコンパイル ファームを運営していましたが、1 年ほど前に閉鎖されました。以下のいくつかを検討してみてください。サービスに料金を払ったり、自分でサービスを利用したりする場合は、これらのリンクのいくつかが役に立つかもしれません。複数のプラットフォームをカバーする無料のオープンソースのコンパイル/ビルド ファームを探しているだけなら、かなり運が悪いように思えます。
OpenSuse ビルド サービス
言及者 テッド まず、繰り返す価値があります。現在は Linux のみですが、多くのディストリビューションをサポートしています。
GCC コンパイル ファーム
主に GCC 用のビルドのテストに重点を置いていますが、coLinux、BTG BitTorrent クライアント、ClamAV などの他のプロジェクトもホストしています。活用できるものかもしれませんが、コンパイル ファームにどのような OS があるのかはわかりません (ページのメモによると、少なくとも Linux と Solaris が含まれています)。
ビルドロッカー
BuildLocker は、Java および .NET プロジェクト用の Web ベースの継続的統合ソリューションです。BuildLocker は、チームが開発サイクルの早い段階でバグを発見し、時間とコストを節約するのに役立つ仮想専用ビルド マシンです。BuildLocker は、ProjectLocker ソース管理リポジトリ内のソース コードのスケジュールされた自動ビルドを管理します。ソース コードをチェックインするだけで、スケジュールされたビルドによってコードの整合性が検証されます。BuildLocker は自動テストを実行することもでき、テストが失敗した場合は常に警告を発します。
クルーズコントロール
CruiseControl は、継続的なビルド プロセスのためのフレームワークです。これには、電子メール通知用のプラグイン、Ant、およびさまざまなソース管理ツールが含まれますが、これらに限定されません。現在および以前のビルドの詳細を表示するための Web インターフェイスが提供されています。
興味深い余談ですが、ポッドキャストによると、CruiseControl は実際に StackOverflow の開発チームによって自動ビルド テストにも使用されています。
ハドソン
Hudson は、ソフトウェア プロジェクトの構築や cron によって実行されるジョブなど、繰り返し実行されるジョブの実行を監視します。
RunCodeRun
リンクされた他の質問で言及されているように、Ruby プロジェクトのみをサポートしており、現在プライベートベータ版です。ただし、プロジェクトが Ruby である場合は、RunCodeRun に注目する価値があるかもしれません。
CI 機能マトリックス
利用可能な継続的インテグレーション システムは数多くあります。このページは、できるだけ多くのものを公平に比較することを目的としています。
他のヒント
OpenSuSEビルドサービスをご覧ください。これには、かなり多様なLinuxディストリビューション( SuSE / OpenSuSEだけではありません)。
ソフトウェアの観点からは、 buildbot ( sourceforgeプロジェクトサイト)、独自のビルド/連続統合サーバーのセットアップに使用できます。 これは提案され、gcc開発に使用されると考えられました(上記のgccコンパイルファームwikiページに記載されています)。
オープンソース製品で商用化を計画している場合は、Parabuildを検討してください。これにより、 で複数のプラットフォームとマシンで一連のビルドを実行できます。パラレル 。ビルドは、すべてのプラットフォーム固有のビルドが成功した場合にのみ成功します。