私はしばらく時間を空けて、さまざまな設定を試して、自分のニーズに合ったアレンジを思いついた。
基本的に2つのgitリポジトリで構成されています。最初のon(これをbase-repoと呼ぶ)には、後のすべてのパッケージが基づいているほとんどのスクリプトが含まれています。 2番目のレポは "パッケージレポ"と呼ばれます。 ほとんどの開発作業はベースレポで行う必要があります。 base-repoはビルドサーバーと単体テストを介してCI制御下にあります。
package-repoには、ビルドしたいパッケージごとにフォルダがあり、ベースリポジトリにgit-submoduleが含まれています。
各パッケージは現在、非常にシンプルなbashの/シェルスクリプトを経由して構築することができます(「スクリプトを構築」):
- は安定 パッケージのビルドれているサブモジュールベースレポのコミット/タグをチェックしてください
- チェックが特定のパッケージフォルダにパッケージするために必要である
- コピーファイルに基づいており、
- スクリプトは、パッケージ
の履歴ファイルを作成することができ、パッケージを構築するべきです
- スクリプトは、手動またはビルドサーバーによって呼び出すことができます
この方法はpackratと組み合わせることもできます。非常にパッケージ特有の追加コードをパッケージリポジトリに追加することができ、ベースリポジトリから独立したバージョン管理下にある
このアプローチをさらに拡張して、package-repoベースレポにプッシュすることに基づいています。ビルドスクリプトがマスターをコミットとして指し示すパッケージは常に最新の状態になり、ビルドサーバーの制御下であれば、ベースリポジトリの変更によってパッケージが破損することはありません。また、base-repoから同じスクリプトを含むいくつかのパッケージを作成することも可能です。
他を見る:git: symlink/reference to a file in an external repository
出典
2017-05-04 08:53:42
Jax
あなたのニーズに合っていますか? –
継続的な統合を実践していますか? – Hugh
@Hughまだ、しかし、私はそこにそれらを取得したい。しかし、私は大規模なRプロジェクトを開発する経験はありませんし、それとの継続的な統合を行うことは複雑に思えます。 – Jax