web-dev-qa-db-ja.com

ビルドを1ステップで作成できますか?

joel test から:

ビルドを1ステップで作成できますか?

できないと言わざるを得ない。私は現在、展開するために実行する必要のあるアイテムのスプレッドシートリストがあるWebアプリに取り組んでいます。だから私の質問はこれを自動化するにはどうすればよいですか?それは組織全体でなければなりませんか?ヒント/テクニック?

14
billy.bob

Makeは、ビルドプロセスを1つのステップに自動化できます。 Makeは、あなたが望むものはほとんど何でもできます。札幌がMakeがC/C++にのみ適用されると考える理由がわかりません。 makeを使用して、任意のタイプのコマンドを実行できます。それはそれが通常使用されるものであるけれども、それはプログラミングにさえ結び付けられていません。

10
Pemdas

仕事では FinalBuilder を使用します。これにより、コードのチェックアウト、すべてのビルド、テストの実行、展開パッケージの作成など、プロセス全体を自動化するスクリプトを簡単に設定できます。

これは非常に優れたツールであり、 最近、変更管理ツールと構成管理ツールでDr. Dobbs Jolt Awardを受賞しています。

3
Mason Wheeler

環境によっては、Make(C/C++)、Ant/Maven(Java)、Gradle(Groovy)を参照することをお勧めします。可能性が高いですあなたの環境に人気のあるソリューションがあります。

3
sapporo

確かにこれを自動化する方法があります。 Chef などのツールを使用すると、新しくインストールしたばかりのサーバーを簡単にセットアップできます。

knife bootstrap ip.address -N aNameForTheServer -r "role[some functionality]"

私の場合、その単一のコマンドによって実行されるいくつかのステップは次のとおりです。

  • 必要なライブラリ、プログラム、およびPythonモジュールをインストールします
  • 指定されたアクセス権を持つ新しいユーザーを作成する
  • 新しいデータベースの作成、必要なスキーマのロード、所有権とアクセス権の設定
  • プロジェクトコードをダウンロードしてステージングし、構成情報を書き出す
  • データベースサーバーの起動、cronジョブの設定などにより、すべてを本番モードにします。

Windowsのサポートが「暫定」としてリストされているため、ご使用の環境でChefがどのように機能するかはわかりませんが、UNIXベースのシステムの場合は非常に重要です。

Puppet は、シェフより少し古い同様のシステムであり、より優れたWindowsサポートを提供する可能性があります。

0
Sharpie

Java worldでMavenを使用するのは簡単です

mvn clean deploy

私たちの構成では、これにより、WARファイルの必要なすべての構築(JAR依存関係を必要に応じてプルします)、開発Webサーバーへのデプロイメント、および開発データベースでの缶詰テ​​ストデータの作成が行われます。それが整うと、MavenはSeleniumRCを介して包括的な機能テストを処理し、アプリケーションが機能することを確認します。

この単一のコマンドにより、アプリケーションが開発サーバークラスターに完全にデプロイされ、他の開発者がすぐに使用できるようになります(テストに合格した場合)。開発者がローカルでmvn clean install

スナップショットアーティファクト(WAR)は、他の開発者と共有するためにMavenリポジトリにコピーされます(標準のMaven deploy動作に従って)。

OK、ただしスナップショットは開発者にのみデプロイしました。テストと本番環境についてはどうですか?

テストサーバーおよび(後の)本番サーバーへの配布は、誰かが疑わしい出力を監視していることを確認するために手動で処理したいMavenリリースプロセスを通じて処理されます。テスターはスナップショットではなく、リリースされたアーティファクトでのみ機能します。

リリースされたら、簡単なビルドスクリプトを使用してWARファイルをテストサーバークラスターにSFTPで送信し、プロセスを監視して何も問題がないことを確認します。

最後に、すべてのテスターが満足したら、変更されていないWARファイルがフェイルオーバープロダクションサーバークラスターにSFTPで送信されます。

0
Gary Rowe

ジョエルのテストでそれを確認できると思ったので...

pythonでビルドサーバーを作成しました pychron を使用して自動化しました。

コードはコマンドラインからVSSと同期され、borland makeを使用してビルドされます(ほとんどのIDEは、それらがそれを呼び出すかどうかにかかわらず、makeファイルを作成します。Delphiはmakeファイルを取り出して.BPGファイルと呼んでいましたMSBuild XMLファイルを再作成すると、MSBuildを使用できます)。エラーは、追加したばかりのXMLファイルに書き込まれました。

だから、バッチファイルを書いて、これらのことをするだけです。

  1. ソース管理からコードを同期する
  2. あなたがすべてを構築することができなくなることがわかっているダムなもの(プロジェクトの個々の設定ファイル)を削除してください。
  3. すべてを構築します(私はすべてを構築し、すべてを兄弟にします)。
  4. エラーと警告などをログに記録しますが、ビルドを停止しないでください。 (本当に賢い場合は、ビルドを中断させたファイルをチェックインした最後の人の名前を抽出して、彼に厄介なグラムを送信します)
0
Peter Turner