Git: периодически копировать репо в другое, недоступное извне компании - PullRequest
0 голосов
/ 20 февраля 2020

мы работаем над проектом в нашей компании; проект управляется в Azure DevOps («онлайн» версия, с git).
Давайте назовем проект P1, в Azure DevOps для компании С1.

Доступ к DevOps этой компании возможен из любой точки мира, если у вас есть правильные учетные данные.

Проект P1 предназначен для доставки другой компании; назовем его C2.

C2 также имеет веб-сайт Azure DevOps компании, содержащий несколько репозиториев.

C2 хочет каждый день проверять разработку по своему собственному конвейеру Azure (соглашение об именах, покрытие кода и т. Д. c.).

Самое простое, что можно сделать, это отразить P1 от C1 до C2, а затем работать только в C2 / P1. Проблема в том, что доступ к C2 запрещен за пределами домена компании, и что большинство разработчиков не разрабатывает в C2 building.

У нас была следующая идея:

  • каждый день на компьютере разработчика, который находится в здании C2, выполняется извлечение C1 / P1;
  • , сразу после этого выполняется pu sh с локального на C2 / P1.

К сожалению, этот подход работает, только если нет конфликта слияния, если компьютер разработчика всегда включен и т. Д., И т. Д. c.

Есть ли какой-то подход git, который будет разрешить ежедневное полное копирование C1 / P1 в C2 / P1?

Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2020

Вы можете создать другой конвейер для запуска команд git для клонирования C1 / P1 и pu sh в C2 / P1. Пожалуйста, проверьте ниже подробные шаги:

1, создайте новый конвейер в C1 / P1 для синхронизации c C2 / P1 с C1 / P1. (В классе c UI Pipeline). На странице редактирования конвейера нажмите Получить источник и Проверить Не синхронизировать c источники , чтобы пропустить клонирование C1 / P1 по заданию агента.

enter image description here

2, добавьте задачу powershell для запуска под сценариями. В приведенном ниже сценарии клонируется C1 / P1, а затем изменяется удаленный URL-адрес на C2 / P1, а затем pu sh код на C2 / P1. Вам нужно будет использовать PAT для проверки подлинности. Отметьте здесь , чтобы сгенерировать PAT с областью чтения и записи кода

- powershell: |

   git clone https://{PAT for C1/P1}@dev.azure.com/{org}/{proj}/_git/EmptyTestYaml

   cd EmptyTestYaml #cd the code folder

   git remote set-url origin https://{PAT for C2/P1}@dev.azure.com/{org}/{proj}/_git/CrossMicRepo2

   git push -u origin --all -q

  displayName: 'PowerShell Script'

3, щелкните вкладку Триггеры на Включить непрерывное интеграция . Так что с вышеперечисленными шагами. C1 / P1 будет автоматически синхронизироваться с C2 / P1 при любых изменениях, зафиксированных в C1 / P1.

Опция:

Если C2 не должен иметь источник код в его C2 / P1, для C1 / P1 открыт для всех с правильными учетными данными. C2 может просто создать свой конвейер с репо исходного кода, указывающим на C1 / P1. Таким образом, исходный код C1 / P1 не нужно синхронизировать с C2 / P1, и C2 все еще может проверять разработку каждый день на своем собственном Azure конвейере.

Ниже приведены подробные шаги по настройке репо источника трубопровода C2 / P1 к C1 / P1.

1. На странице редактирования конвейера C2 / P1 нажмите , найдите источник и выберите Other Git, Нажмите Новое служебное соединение (или добавьте соединение, если оно не было настроено ранее).

enter image description here

2, В появившемся окне: введите azure URL репо C1 / P1 и PAT для C1 / P1.

enter image description here

3, затем нажмите Триггеры Tab Включить непрерывную интеграцию . Затем, когда любые изменения будут зафиксированы в C1 / P1, будет запущен конвейер C2 / P1.

Вы также можете добавить сервисное соединение со страницы настроек проекта C2 / P1. Проверьте здесь для деталей

Надеюсь, что выше помогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...