私はAPIを開発しています。3つの環境があります。開発 (ローカル セットアップではない)、ステージング、および製品。
いつものように、Dev ですべてを開発しています。完了したら、それをステージングにプッシュし、そこでテストしてから、本番環境にプッシュします。
デプロイは Beantalk で次のようにセットアップされます。
Dev (Auto Deploy to the server)
Staging (Manual Deploy)
Prod (Manual Deploy)
API V1.0 の最初のバージョンをリリースしたとき。すべてが SVN リビジョン番号と同期しています。3 つの環境すべてがリビジョン番号 1000 で、3 つのサーバーすべてにデプロイされているとします。
現在、開発環境のバグを修正し続けています。そのため、Dev にデプロイされたリビジョン番号は 1200 になりました。会社は、これらすべての変更をステージングおよび本番環境にプッシュすることを望んでいませんでした。
今、彼らは緊急のバグを思いつきました。彼らは、これらのバグのみをステージングと本番にプッシュすることを望んでおり、私が修正してすでに開発にデプロイしたバグは望んでいません。
v1.0 のリリース後、タグを作成し、すべてのファイルをコピーしました。そこで、そのタグからブランチを作成し、ファイルをローカル システムにチェックアウトして、このブランチのバグの修正を開始しました (これが正しい方法かどうかはわかりません)。
ただし、変更をコミットすると、それらは自動的に開発環境にデプロイされます。これで、dev のリビジョン番号は 1201 になりました (以前に行ったすべての修正では 1200 でしたが、Staging と Prod にはデプロイされませんでした)。
これで、リビジョン番号の展開は次のようになります。
Dev (1201)
Staging (1000)
Prod (1000)
Staging と Prod に最新の修正をデプロイしてほしい。Staging と Prod にデプロイするために 1201 を選択すると、1201 だけでなく、1001 から 1201 までのすべてのリビジョンがデプロイされると思います。
これに対処する方法はありますか?より良いプラクティスはありますか?