Настройте сборку Jenkins CI для использования TFVC, размещенного в DevOps Azure - PullRequest
1 голос
/ 31 мая 2019

Недавно мы перешли с локального сервера TFS на Azure DevOps. Наша команда использует TFVC для контроля исходного кода, и я получаю следующее исключение, когда Дженкинс опрашивает для новых проверок:

ФАТАЛЬНО: для этого сервера требуется федеративная аутентификация, но не было механизма для его обработки. com.microsoft.tfs.core.exceptions.TFSFederatedAuthException: этот сервер требует федеративной проверки подлинности, но механизм для ее обработки недоступен.

Учитывая, что имя класса исключения равно TFSFederatedAuthException Я подозреваю, что Azure ожидает какой-то интеграции OAuth, но Дженкинс, похоже, не поддерживает это для TFVC.

Все, что я сделал, это изменил URL коллекции для этой сборки Jenkins на https://dev.azure.com/MyCompany. Путь к проекту остается прежним, и я проверил это, потому что мне удалось переназначить все мои ветви TFVC в Visual Studio, просто указав на другой URL-адрес коллекции и сохранив тот же путь проекта. Скриншот конфигурации управления исходным кодом Jenkins приведен ниже:

Screenshot of Jenkins build config screen.

Этот сервер Jenkins является внутренним без общедоступного IP-адреса или имени хоста.

Как можно разрешить Jenkins опрашивать репозиторий TFVC, размещенный в DevOps Azure, для запуска сборки CI в Jenkins?


Почему бы не использовать конвейеры Azure? Сейчас это гораздо больше усилий по миграции, и я просто пытаюсь решить краткосрочную проблему.

Использование конвейеров Azure - моя долгосрочная цель, но мне нужно выяснить, как наши автоматизированные тесты могут сначала использовать базу данных Oracle, потому что все данные удаляются перед выполнением каждого теста с использованием Selenium.

1 Ответ

1 голос
/ 31 мая 2019

Azure DevOps использует OAuth для связи по умолчанию, поэтому ввод вашего имени пользователя и пароля не будет работать из-за этого. Вместо этого, хитрость заключается в том, чтобы сгенерировать токен личного доступа (я подозреваю, что область действия Code|Read+Write должна это сделать) и передать его.

Для имени пользователя введите ., для пароля - ваш сгенерированный токен личного доступа. Дайте токену правильное имя, чтобы вы знали, какой срок его действия истекает после получения уведомления по электронной почте.

...