システムが参照の削除をキャッチしてビルドをトリガーできるかどうかはわかりませんが、CIインスタンスは開発者のリモート個人リポジトリからプルしているgit remote prune origin
ため、CI側で削除されたブランチを削除するために使用する必要があります個人用リモートリポジトリ(originがdevリモートリポジトリのリモート名であると想定します。これは、そこから複製されたためです)
CIがグリーンリポジトリにプッシュしているとき、リモート側のブランチのサブセットを現在のものと比較し、削除されたブランチを見つける機能があります。したがって、CI側では、プッシュするたびにそのようなことを行うことができます。
git branch -a | grep {green_repo_remote_name}
ローカルブランチのリストと比較してください。
git branch
実行します
git push {green_repo_remote_name} :branch_name_that_exists_only_in_green_repo
アップデート:
以下のコメントによると、上記のアプローチは他の開発者ブランチをグリーンリポジトリから削除するようです。私の悪い。私が見ているように、それを解決するための2つのアプローチがあります。
I.グリーンリポジトリでの開発ブランチの作成を停止し、CIを使用して実際に変更を統合します。
devパーソナルリポジトリからの変更時に、CIはこの変更をチェックアウトし、一般的に知られている統合ブランチをグリーンリポジトリからプルし、devブランチをそれにマージしてコンパイルする必要があります。成功した場合は、変更をグリーンリポジトリにプッシュバックします
II。CIリポジトリをグリーンリポジトリのリモートとして登録し、グリーンリポジトリ側の受信後フックで遊んでトリガーしgit remote prune *
ます。これにより、各リモートのCIリポジトリから削除されたすべてのブランチが効果的に削除されます。
お役に立てば幸いです。