問題タブ [continuous-integration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Phing と PHPUnderControl の違いは何ですか?
現在、手作業によるセットアップおよび構成スクリプトと、手作業による継続的インテグレーション スクリプトを使用して、アプリケーションをビルドおよびデプロイしています。これらの目的のために設計されたサードパーティのシステムを使用して、これをある程度形式化することを検討しています。
以前に Phing を調べたことがありますが、基本的には Ant に似ていることがわかりました。しかし、私の Ant の経験は多少限られているため、あまり役に立ちません。(私が行った Java 作業のほとんどは、jar ファイルとしてデプロイされただけです)。
以前にクルーズ コントロールを調べたことがありますが、phpUnderControl が CC のプラグインであることは理解しています。しかし、Phing は、CC でも動作すると述べています。したがって、ここでの重複については明確ではありません。CruiseControl を使用するには Phing と phpUnderControl の両方が必要ですか、それとも相互に排他的ですか?
私が正確に必要としているのは、次のことができるものです。
- SVN からソースをチェックアウト
- SQL ファイルからデータベースをインストールする
- 一連のテンプレートと ini ファイルからいくつかのローカル構成ファイルを生成します
- すべての単体テスト (現在は ST ですが、PHPUnit に簡単に変換できます) を実行し、テストが壊れた場合は開発チームにメールを送信します (もちろんスタック トレース付き)。
- アプリケーションの API ドキュメントを生成し、どこかに置く
- テスト カバレッジ レポートを実行する
現在、私たちはこれらすべてを何らかの形で持っています。しかし、すべてが自動化され、1 つのプロセスにまとめられると便利です。
php - phpUnderControlの代替 - それは最高ですか?
UnitTesting、Subversion、コーディング標準を実行する PHP 用の優れたシステムを探しています。
あなたの提案と、どれが最適で、その理由を教えていただければ幸いです。私はそれをdebianサーバーで実行するので、MacまたはWindowsサーバーで実行されるものは問題外です.
c++ - C++ プロジェクトに最適な継続的インテグレーション ツールはどれですか?
Cruisecontrol と Hudson は、2 つの一般的な継続的インテグレーション システムです。どちらのシステムも自動化された連続ビルドを適切に実行できますが、バッチまたは bash ビルド スクリプトを作成し、Windows スケジューラまたは cron を使用してビルドをスケジュールする方がはるかに簡単に思えます。
C++ プロジェクトで使用できる、より優れた継続的インテグレーション システムはありますか? それとも、スクリプトとスケジューラを使用する方が簡単ですか?
tdd - 継続的インテグレーションで TDD をどのように処理しますか?
さまざまな新機能を含むユーザー ストーリーを実装し、コード ベースに複雑さを加えていると想像してください。既存のコードは十分にカバーされており、インターフェースを決定したところです。テストから機能の実装を開始しています。
これで、要件に基づいたかなり複雑なテスト ケースができましたが、実装は、SCM の完全に機能するコードにコミットでき、多くのテストが (当然のことながら) 失敗する時点にはほど遠い状態です。
継続的インテグレーションでは、可能であればすべてのビルドをグリーンにする必要があるため、ビルドを壊してしまうのでコミットしないでください。しかし、 「暗くなる」べきではなく、そのような量のコードを自分で保持するべきではありません...
このような状況で推奨される手順は何ですか?
svn - SVN 1.4 を 1.5.3 に、CC.Net を 1.3 から 1.4 にアップグレードする
これは複数の部分からなる質問だと思いますので、ご容赦ください。
現在、すべての開発者は SVN 1.4 用にビルドされたバージョンの Tortise を使用しており、SVN サーバーは 1.4 を実行しています。私たちのビルド サーバーは CC.Net を実行しており、SVN 1.4 を使用しています。
アップグレードしたい。
クライアントを 1.5 にアップグレードしてから、サーバーを 1.5 にアップグレードするとうまくいくことがわかりました。ただし、CC.Net に関しては疑問が生じます。ビルド サーバーの SVN のインストールを SVN 1.5 にアップグレードすることはできますか? それとも、CC.Net のインストールもアップグレードする必要がありますか? 今回は CC.Net のアップグレードも行いたいと考えていますが、SVN のアップグレードが最初に完了していることを確認してから、戻って CC.Net を実行したいと考えています。
また、この組み合わせに加えて、一部のプロジェクトでは、これらのプロジェクトで使用する nAnt スクリプトのために、SVN のバイナリが含まれる場合と含まれない場合がある「tools」フォルダーを維持しています。SVN の CC.Net サーバー インストールを 1.5 にアップグレードする場合、CI サーバーは実行される nAnt スクリプトと同じ作業ディレクトリを使用するため、これらのプロジェクトもすべて更新する必要があると思います。
泥のように透明?
eclipse - Eclipse プロジェクトで継続的インテグレーションを使用するにはどうすればよいですか?
私は継続的インテグレーションを行うためにしばらく maven2 と hudson を使用してきましたが、Eclipse と Maven はうまく連携できないことがわかりました。確かにプラグインはありますが、maven プロジェクトを eclipse が好むものにマッシュアップするのは面倒で、ビルド時間と単体テストが長すぎます。私は、アリもメイベンも関与しない純粋なEclipseプロジェクトに戻すことを検討しています。無限のプラグインと JavaRebel エージェントを使用すると、ビルド、デプロイ、テストのサイクルが非常に高速になります。ただし、自動化とテストも行いたいので、次のようにします。
Eclipse プロジェクトで継続的インテグレーションを使用するにはどうすればよいですか?
それを行うコマンドラインの方法はありますか?
すでにネイティブでサポートしているビルド サーバーはありますか?
windows - MSVC++ デバッグ エラーが現在のプロセスをブロックしないようにしますか?
Windows で ASSERT ステートメントが失敗すると、以下のデバッグ メッセージが表示され、アプリケーションの実行がフリーズします。これは予期された動作であることは認識していますが、ヘッドレス マシンで定期的に実行されているため、単体テストが失敗するのを防ぎ、代わりにユーザー入力を無期限に待機します。
ASSERT でテストが失敗することを許可しながら、このメッセージ ボックスがユーザー入力を要求しないようにするために使用できるレジストリ キーまたはコンパイラ フラグはありますか?
基本的に、コードを変更せずに、コンパイラまたは Windows オプションを変更するだけでこれを実行したいと考えています。
ありがとう!
Microsoft Visual C++ Debug Library ASSERT http://img519.imageshack.us/img519/853/snapshotbu1.png
continuous-integration - デイリー ビルド vs. 欠陥ゼロ
日々のビルドをどのように行い、欠陥ゼロの環境を目指していますか? 新しいコードのすべてのバグを殺すまで家に帰れないということですか? それとも、完全にテストするまでコードをチェックインしないということですか?
私は初めて少数のプログラマーと作業しているので (自分で作業したり、他の 1 人のコーダーと作業したりするのではなく)、このような決定に初めて取り組んでいます。ソフトウェア開発プロセスを採用する必要がありますか?
continuous-integration - 継続的インテグレーションアーティファクトとして仮想マシンイメージを作成しますか?
私は現在、新しいサーバーにデプロイするのが少し複雑なサーバー側の製品に取り組んでいます。これは、VMでテストするための理想的な候補です。すでにCIシステムとしてHudsonを使用していますが、ビルドアーティファクトとして最新かつ最高のソフトウェアを使用して仮想マシンイメージをデプロイできるようにしたいと考えています。
では、これを正確に行うにはどうすればよいのでしょうか。この目的で推奨されるVMソフトウェアは何ですか?これを実現するには、どのくらいのスクリプトを実行する必要がありますか?ここでOSとしてWindows2003Serverを使用する場合、特に問題はありますか?
performance - 自動化されたテストを高速に保つには?
自動化されたテストは、リアルタイムのプロジェクトの状態を反映するために高速でなければなりません。アイデアは次のとおりです。
- リポジトリ自動ビルドへのコミットが実行された後 (可能な限り速く)。
- ビルドが成功すると、自動テストが開始されます。高速である必要があります。
これは、あなたの変更が何かを壊すかどうかを知るための私が知っている最良の方法です.
最初はビルドを高速化するのは難しいと思われましたが、100 秒程度に抑えることができました。105(!) プロジェクトのソリューション (MSVS 2008 C#)。
テストはそれほど単純ではないように見えました (NUnit FW を使用しています)。単体テストは大きな問題ではありません。私たちを殺すのは統合テストです。そして、それらが遅いという事実ではなく(それらをより速くする方法に関するアイデアは大歓迎です)、環境をセットアップする必要があるという事実は、はるかに遅い(atm〜1000秒)です!
私たちの統合テストでは、最新の変更を反映するために再デプロイする必要がある web/win サービス (これまでのところ 19 個) を使用しています。これには、サービスの再起動と多くの HDD R/W アクティビティが含まれます。
自動化されたテスト フェーズを短縮するために、環境とワークフローをどのように整理/最適化する必要があるか、どのように最適化できるかについて、誰でも経験を共有できますか。「低レベル」のボトルネックと回避策は何ですか。
PS の書籍や広範な記事は歓迎されますが、実際の作業ソリューションはより高く評価されます。