Как синхронизировать репо в Bitbucket с сервисом Visual Studio Team?
Я очень плохо знаком с платформой VSTS. В одном из моих проектов я пытаюсь интегрировать управление исходным кодом bitbucket в VSTS. Таким образом, я смогу видеть обновления, сделанные на bitbucket, для учетной записи VSTS.
Я попытался создать сборку на VSTS, но это показывает только историю коммитов выбранного хранилища bitbucket.
Есть ли способ управлять всеми изменениями битового сегмента в VSTS в качестве контроля исходного кода?
2 ответа
Чтобы автоматически синхронизировать изменения из репозитория bitbucket в VSTS git repo, этого можно добиться с помощью определения сборки VSTS. Подробные шаги, как показано ниже:
1. Создайте определение сборки с помощью репозитория Bitbucket.
При создании определения сборки VSTS -> выберите репозиторий Bitbucket, который вы хотите синхронизировать -> создать.
2. Включить непрерывную интеграцию
В определении сборки -> вкладка Триггеры -> Включить непрерывную интеграцию -> Включить все ветви с *
,
3. Добавьте задачу PowerShell со сценарием для синхронизации репозитория bitbucket с VSTS git repo.
Добавьте задачу PowerShell с помощью следующего сценария:
if ( $(git remote) -contains 'vsts' )
{git remote rm vsts
echo 'remove remote vsts'
}
$branch="$(Build.SourceBranch)".replace("refs/heads/","")
git remote add vsts https://Personal%20Access%20Token:PAT@account.visualstudio.com/project/_git/repo
git checkout $branch
git push vsts $branch -f
Подробные инструкции по добавлению и настройке задачи PowerShell приведены ниже:
Отредактируйте определение вашей сборки -> Нажмите +
чтобы добавить задачу для фазы агента -> Поиск задачи PowerShell -> нажмите кнопку Добавить -> щелкните добавленную вами задачу PowerShell -> выберите тип Inline -> затем добавьте сценарий PowerShell в параметре "Сценарий" -> "Сохранить определение сборки".
Теперь, независимо от того, какая ветка обновляется в вашем репозитории битбакетов, VSTS git repo будет синхронизироваться автоматически.
Синхронизируя изменения с VSTS git repo на bitbucket repo, вы можете создать еще одну сборку CI для достижения этой цели. Подробные шаги, как показано ниже:
1. Создайте сборку CI с помощью VSTS git repo.
2. Включить непрерывную интеграцию
3. Добавьте задачу PowerShell со следующими аспектами
if ( $(git remote) -contains 'bitbucket' )
{git remote rm bitbucket
echo 'remove remote bitbucket'
}
git remote add bitbucket https://username:password@bitbucket.org/username/repo.git
$branch="$(Build.SourceBranch)".replace("refs/heads/","")
git checkout $branch
git push bitbucket $branch -f
Когда вы подключаете свою учетную запись Bitbucket к VSTS, вы настраиваете триггеры сборки для запуска автоматических сборок по запросу или слиянию. Это то, что называется "непрерывной интеграцией" в мире DevOps.
Вы можете прочитать документацию для получения дополнительной информации по этой теме.
Вы продолжите "управлять" своими репозиториями Bitbucket в Bitbucket. Это совершенно отдельно. Если вы хотите управлять всем через VSTS, вам следует импортировать репозиторий Bitbucket в свою учетную запись VSTS.