はい、IMO でコンパイルされたオブジェクトをバージョン管理することに夢中ですが、Heroku も狂っているようです。
その場合、展開プロセスをスクリプトにラップして、次のようにします。
- ブランチ
- コンパイル
- コンパイルされたアセットをコミットします (ick)
- 強制プッシュ
- ローカル ブランチの HEAD をリセットして、ブランチ ポイントをタグとして保持しますが、コンパイルされたアセットを含む孤立したコミットはガベージ コレクションされる可能性があります
- 元のブランチに戻る
追跡する方法を提供する限り、GC がブランチをクリアする前に、いつでもブランチをチェックアウトして、デプロイされたコミットに再びロールフォワードできることに注意してください (コミット SHA を含むメモが機能します)。手遅れになっても、ソースからビルドを再現できます。
複数のリポジトリがある場合、これは明らかに失敗します。これを修正する方法はわかりませんが、単一のマスター/デプロイ リポジトリで CI 環境のようなものを実行することはできます。
ソースの通常の (強制されていない) プッシュをマスター デプロイ リポジトリのみに実行し、ブランチ/コンパイル/デプロイ/破棄の手順を自動的に実行します。常にデプロイするのではなく、作業環境間で変更を同期するためにマスター リポジトリを使用する場合は、たとえば、タグがプッシュされたときにのみデプロイ シーケンスを実行することができます。