joel test から:
ビルドを1ステップで作成できますか?
できないと言わざるを得ない。私は現在、展開するために実行する必要のあるアイテムのスプレッドシートリストがあるWebアプリに取り組んでいます。だから私の質問はこれを自動化するにはどうすればよいですか?それは組織全体でなければなりませんか?ヒント/テクニック?
Makeは、ビルドプロセスを1つのステップに自動化できます。 Makeは、あなたが望むものはほとんど何でもできます。札幌がMakeがC/C++にのみ適用されると考える理由がわかりません。 makeを使用して、任意のタイプのコマンドを実行できます。それはそれが通常使用されるものであるけれども、それはプログラミングにさえ結び付けられていません。
仕事では FinalBuilder を使用します。これにより、コードのチェックアウト、すべてのビルド、テストの実行、展開パッケージの作成など、プロセス全体を自動化するスクリプトを簡単に設定できます。
これは非常に優れたツールであり、 最近、変更管理ツールと構成管理ツールでDr. Dobbs Jolt Awardを受賞しています。
環境によっては、Make(C/C++)、Ant/Maven(Java)、Gradle(Groovy)を参照することをお勧めします。可能性が高いですあなたの環境に人気のあるソリューションがあります。
確かにこれを自動化する方法があります。 Chef などのツールを使用すると、新しくインストールしたばかりのサーバーを簡単にセットアップできます。
knife bootstrap ip.address -N aNameForTheServer -r "role[some functionality]"
私の場合、その単一のコマンドによって実行されるいくつかのステップは次のとおりです。
Windowsのサポートが「暫定」としてリストされているため、ご使用の環境でChefがどのように機能するかはわかりませんが、UNIXベースのシステムの場合は非常に重要です。
Puppet は、シェフより少し古い同様のシステムであり、より優れたWindowsサポートを提供する可能性があります。
Java worldでMavenを使用するのは簡単です
mvn clean deploy
私たちの構成では、これにより、WARファイルの必要なすべての構築(JAR依存関係を必要に応じてプルします)、開発Webサーバーへのデプロイメント、および開発データベースでの缶詰テストデータの作成が行われます。それが整うと、MavenはSeleniumRCを介して包括的な機能テストを処理し、アプリケーションが機能することを確認します。
この単一のコマンドにより、アプリケーションが開発サーバークラスターに完全にデプロイされ、他の開発者がすぐに使用できるようになります(テストに合格した場合)。開発者がローカルでmvn clean install
。
スナップショットアーティファクト(WAR)は、他の開発者と共有するためにMavenリポジトリにコピーされます(標準のMaven deploy
動作に従って)。
OK、ただしスナップショットは開発者にのみデプロイしました。テストと本番環境についてはどうですか?
テストサーバーおよび(後の)本番サーバーへの配布は、誰かが疑わしい出力を監視していることを確認するために手動で処理したいMavenリリースプロセスを通じて処理されます。テスターはスナップショットではなく、リリースされたアーティファクトでのみ機能します。
リリースされたら、簡単なビルドスクリプトを使用してWARファイルをテストサーバークラスターにSFTPで送信し、プロセスを監視して何も問題がないことを確認します。
最後に、すべてのテスターが満足したら、変更されていないWARファイルがフェイルオーバープロダクションサーバークラスターにSFTPで送信されます。
ジョエルのテストでそれを確認できると思ったので...
pythonでビルドサーバーを作成しました pychron を使用して自動化しました。
コードはコマンドラインからVSSと同期され、borland makeを使用してビルドされます(ほとんどのIDEは、それらがそれを呼び出すかどうかにかかわらず、makeファイルを作成します。Delphiはmakeファイルを取り出して.BPGファイルと呼んでいましたMSBuild XMLファイルを再作成すると、MSBuildを使用できます)。エラーは、追加したばかりのXMLファイルに書き込まれました。
だから、バッチファイルを書いて、これらのことをするだけです。