0

でプロジェクトの構築されたバージョンを展開するための適切な方法は、現在、私の展開が見えているもの:次のようにCodeship

  1. ローカルの変更をコミットした後、私はローカル/distにプロジェクトを構築するためのうなり声のタスクを実行しますフォルダ。

  2. 次に、それらをbitbucketにプッシュします。例えばブランチ名は、私はに機能/預金をマージブランチを開発し、Codeshipが枝を開発構築します(テストを実行)し、その後、次のコードが実行されるのBitbucketで

  3. 機能/預金です:

    のssh [email protected] " cdプロジェクト/ www; git checkoutが発展する; git pull起源が発達する; npmインストール。 sudo monit restart project.app.js '

私はこのアプローチが嫌いです。なぜなら、コードシップが構築したものを展開するのはずっと意味があるからです。コードシップはnpm installで実行され、私はgrunt:buildタスクを実行してからそれを私のプロダクションサーバーに展開したいと考えています。

同様の問題に対処し、エクスポートCI_COMMIT_ID = $(git rev-parse HEAD)タスクを追加したarticleが見つかりました。しかし、私は、私が自分の展開スクリプトでそれに必要なことを完全に理解していません。この例以外にもherokuで使用されていますが、私の場合はカスタム展開スクリプトを使用しています。

有用なとthis oneのgithubレポも私のニーズに合っているかもしれません。

しかし、私は、私は今それを行うのと同じ方法で構築されたバージョン(Codeshipが構築されたもの)から引くことができますが、 git pull origin developがCodeshipがちょうど

を内蔵したものと git pullするかどう私が把握したいのです
+1

gitリポジトリにもビルド済みのアプリを保存したいのはなぜですか?我々のユーザのほとんどは少し異なるアプローチに従っています: ローカルの変更をコミットし、リモートリポジトリ(GitHub/Bitbucket)にプッシュします。これはCodeshipのビルドをトリガーし、Codeshipはアプリケーションをビルドし(例えばgruntを介して)、テストを実行してから、例えば 'rsync'を介して、またはHerokuにプッシュすることによってアプリケーションをデプロイします。 – mlocher

+0

@mlocher私のレポに/ distを保持したくありません。私は今はやっているが、このアプローチを避けたい。 rsyncを使用してカスタムスクリプトを使用してデプロイする方法に関する詳細情報を提供してください。ありがとう! – user2814599

+0

@mlocher - gitを使わずにビルドされたサーバーをコピーすることをお勧めしますか? – user2814599

答えて

0

私は結局のところ、/distというフォルダコードを運用サーバーにコピーするだけでした。 運用サーバーからgitを削除し、に/distフォルダを追加しました。 コードシップは、プロジェクトをビルドするコマンドを含むすべてのコマンドを実行し、プロダクションサーバーにコピーします。非常に速く便利な方法。

継続的デプロイ設定:

rsync -avz -e "ssh" ~/src/bitbucket.org/username/project/dist/ [email protected]:/home/nodejs/project/www/dist 

/src/bitbucket.org/username/project/ - ビルド手順のいずれかから取得することができます。