必要なのはビルドツールです。Java では、ant と maven が一般的な選択肢です。node.js の世界には、大量のビルド ツールがあります。私が最もよく知っているのは、grunt と buildr の 2 つです (完全な開示: 私は buildr のメンテナーです)。
どちらのツールも、ソースファイル/ディレクトリとそれらに対して何をしたいか、縮小、連結、SaasまたはStylusコンパイルなどのオプションを指定する構成ファイルを作成することに要約されます.
https://github.com/gruntjs/grunt
https://github.com/balupton/buildr.npm
展開ワークフローについては、次の手順をお勧めします。
- ソース管理 (Git や Subversion など) からの Web サイトまたはアプリ コードのクリーン チェックアウト。
- grunt または buildr コマンドを実行して、すべての Web サイト リソースをコンパイルします。
- 結果を Web サーバーにアップロードしてから、node.js プロセスを再起動します。これを行う方法はたくさんあります。
アプリケーションの場合、リモート システムのインストール ディレクトリを削除し、代わりに新しいバージョンを SCP することをお勧めします。これは、ロード バランサーの存在を前提としています。
アプリによっては、シェル スクリプトを使用して自分でスクリプトを作成するだけの簡単な場合もあれば、capistrano やフリートなどのツールを使用する場合もあります。
https://github.com/capistrano/capistrano
https://github.com/substack/fleet
単純な Web サイトの場合、rsync のようなファイルの違いを調べるものをお勧めします。私は個人の Web サイトに rsync を使用しています。これは静的なコンテンツであり、依存関係などについて心配する必要がないためです。
したがって、リリースは次のようになります
$ git clone git://github.com/whatever.git && (cd whatever && buildr && rsync -avz --delete -e ssh <remote server>:webroot)
または、もう少し自動化されたアプリの場合:
$ git clone git://github.com/whatever.git && (cd whatever && buildr && make upload)
主要なアプリの場合:
$ buildApp && deployApp
buildApp と deployApp は、ビルドとデプロイに必要なすべてのコマンド、ロギング、構成などを含むスクリプトです。