Как правило, требуемое поведение здесь выполняется на стороне сервера, и есть несколько способов сделать это.
Во-первых, если вы используете запросы извлечения, вы можете установить код для сканированиятянуть запрос как часть CI.Код, который не проходит, не сливается (или только сливается с переопределением администратора).Именно так люди традиционно решают эту проблему, и она работает довольно хорошо.У вас может быть набор глобальных сценариев, которые используются во всех ваших заданиях CI, что потребует от вас обновления нескольких сценариев в первый раз, но не в последующих итерациях.
Во-вторых, если ваша серверная реализация поддерживаетхук post-receive
, вы можете добавить такой хук, чтобы обновить постоянную тестовую ветвь, когда происходит push.Это требует реализации на стороне сервера, которая поддерживает это, а большинство - нет.
В-третьих, если ваша реализация на стороне сервера имеет поддержку доставки через веб-крючок, вы можете использовать это для общения со службой, которая может выполнитьдействие для вас.Для этого потребуется, чтобы у службы был какой-либо токен или ключ SSH для выполнения этой задачи.
В-четвертых, если вы используете GitHub (облачная версия, а не собственная), вы можетевозможность подписаться на действия GitHub и использовать его для выполнения этой задачи.Для этого также потребуется какой-то секрет, который можно использовать для обновления ветки.