#git #tfs #azure-devops
#git #tfs #azure-devops
Вопрос:
Я столкнулся с проблемой при попытке получить доступ к различным источникам git в сборке TFS.
У меня есть 2 репозитория Test1 и Test2 — https://tfs.org.com:8080/tfs/collection/project/_git/Test1 (amp; Тест2). В Test2 я добавил sample.txt amp; .файл gitmodules.
В файле .GitModules есть cmd — git submodule add https://tfs.org.com:8080/tfs/collection/project/_git/Test1
(поскольку я тоже хочу проверить содержимое Test1 при запуске репозитория Test2)
Теперь в Build def (который создает Test2) я проверил опцию (Проверка подмодулей) — и запустил сборку. Но я не вижу, чтобы содержимое Test1 проверялось на сервере сборки. Как я могу этого добиться?
Примечание: я пробовал использовать другой вариант, который я нашел в Интернете, но безуспешно.
[submodule "Test1"]
path = Test1
url = https://tfs.org.com:8080/tfs/collection/project/_git/Test1
(Приведенный выше — это POC, который я тестирую, чтобы заставить его работать в нашей реальной среде, т.Е. Azure DevOps — доступ к TFS с помощью подключения к другой службе git для сборки и выпуска)
Вот журнал сборки для источников Get:
2020-10-04T15:16:20.1648800Z Entering TfsGitSourceProvider.PrepareRepositoryAsync
2020-10-04T15:16:20.1648800Z localPath=E:Temp1s
2020-10-04T15:16:20.1648800Z clean=True
2020-10-04T15:16:20.1648800Z sourceBranch=refs/heads/master
2020-10-04T15:16:20.1648800Z sourceVersion=1cca491d4af9def54e8e9d11b3c6ffbb226ace21
2020-10-04T15:16:20.1648800Z Syncing repository: Test2 (Git)
2020-10-04T15:16:20.1648800Z repository url=https://tfs.org.com:8080/tfs/collection/project/_git/Test2
2020-10-04T15:16:20.1648800Z checkoutSubmodules=True
2020-10-04T15:16:20.2586300Z Running 'git clean -fdx' on E:Temp1s.
2020-10-04T15:16:20.5555003Z Running 'git reset --hard HEAD' on E:Temp1s.
2020-10-04T15:16:20.6648794Z HEAD is now at 043b897 Updated .gitmodules
2020-10-04T15:16:20.6805036Z Starting fetch...
2020-10-04T15:16:20.9930080Z Checking out 1cca491d4af9def54e8e9d11b3c6ffbb226ace21 to E:Temp1s with submodules
2020-10-04T15:16:21.0398784Z Checked out branch refs/heads/master for repository Test2 at commit 1cca491d4af9def54e8e9d11b3c6ffbb226ace21
2020-10-04T15:16:21.0398784Z commit=1cca491d4af9def54e8e9d11b3c6ffbb226ace21
2020-10-04T15:16:21.0398784Z Leaving TfsGitSourceProvider.PrepareRepositoryAsync
Комментарии:
1. У вас должно быть несколько журналов процесса проверки Git в вашей сборке. Можете ли вы добавить их к своему вопросу?
2. @SorenBjornstad добавил журналы сборки
3. @user2153844 Я протестировал его на своей стороне, но он хорошо сформулирован. Похоже, ваши шаги верны. Можете ли вы следовать моим инструкциям и повторить попытку?
4. @user2153844 Не получаю вашего ответа в течение нескольких дней, не могли бы вы поделиться своей последней информацией об этой проблеме? Не стесняйтесь, дайте мне знать, если вы все еще заблокированы, я сделаю все возможное, чтобы помочь 🙂
Ответ №1:
Вы должны выбрать опцию для загрузки подмодулей.
В YAML необходимо добавить явный checkout
шаг
steps:
- checkout: self
submodules: true
Комментарии:
1. Спасибо @giulio. Но пока я использую классическую сборку TFS. Мы не реализуем в YAML.
2. На верхнем скриншоте этого ответа показано, как использовать его в Classic.
Ответ №2:
Я выполнил следующие действия, и все сработало, как ожидалось: