私は4つのRailsアプリケーションを持っています。彼らは共有:コードと設定を共有する複数のRailsアプリケーションとサービスをどのように管理しますか?
- スタイルシート
- JavaScriptの
- サードパーティ製の宝石
- 同じActiveRecordのモデルのいくつかの
- 当社独自のRubyライブラリ
- 設定/環境変数
I上記と相互作用するrabbitmqサービスがたくさんあるRailsアプリケーション。
私はどのようにsanelyバージョンのすべてのこれらのものを制御するかを把握しようとしています。今、私は1つの巨大なgitリポジトリ内のすべてを持っている、のような構造:
/sites/rails1 /sites/rails2 /sites/rails3 /services/service1 /services/service2 /services/service2 /lib/our_code /lib/common_js /lib/common_css /config/common_configuration_files
が、これはそれを行うためのまともな方法は何ですか?
すべてを自分のgitプロジェクトに分割すると、共有されたgem/library/cssファイルが更新されるたびに(gems/bundlerなどで)個々のプロジェクトを個別に更新するように思えます。
1つのプロジェクトにすべてのことがあって残念なことは、私が1つのアプリやサービスをHerokuに(簡単に)置くことができないことです。
サブツリーマージのヘルプはここにありますか?たぶん、各サイト/サービスが独自のブランチですか?
私は定数ファイル構造に数えられません。開発者は自分のマシンで開発します。私は別のファイル構造に展開します。 CIマシンは、何か別のもので動作します(Jenkinsと一緒に)。 Herokuは独自のものを使用します。これらの違いのため、私はシンボリックリンクをgitにチェックインできるとは思わない。 –
また、1つの大きなプロジェクトはどのようにマージを不可能にしますか? –
@Joe Van Dyk、それは...私は答えのその部分を編集するつもりです。 –