2016-08-06 6 views
2

Я установил обновление TFS 2015 3. И создал пул агентов, называемый «HYB Pool». Этот пул агентов содержит в нем 2 агента. Один из них - агент Linux, а другой - агент Windows. Причина, по которой он был создан таким образом, состоял в том, что шаг «построения кода» - это использование агента Windows и шагов пост-сборки (с использованием докеров для создания и печати изображений), с использованием агента Linux.Объединение Windows и Linux в единую сборку: никакой агент не найден со следующими возможностями: sh, DotNetFramework

Когда я выполняю только шаг сборки в HYB Pool, он отлично работает. И снова, когда я выполняю только шаг пост-сборки (который требует агента linux) с HYB-пулом, он работает хорошо. Но когда я объединить все шаги вместе и выполнить его в HYB Бассейн, то он бросает следующие ошибки:

No agent found in pool 6 which satisfies the specified demands:

  • sh
  • DotNetFramework
  • Agent.Version > Version 1.94.0

Как это исправить? Похоже, что у агентов есть возможности, но когда весь процесс комбинируется (шаг сборки и докера), он выдаёт ошибку.

версия агента для

  • Linux агента 2.104.1
  • окна агент 1.95.3
+0

Агенты имеют возможности sh и DotNetFramework. Я вижу следующие возможности: sh =/bin/sh и DotNetFramework = C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 – Raji

ответ

2

Весь процесс сборки должен быть выполнен одним агентом. И единственный агент должен обладать всеми возможностями, которые требует сборка.

Чтобы решить эту проблему, вам придется:

  • удаленного SSH из вашего окна агента на Linux машине, чтобы выполнить другие действия. Для реализации частей удаленного скрипта вы можете использовать настраиваемый пакетный или powershell-шаг.
  • или выполнить шаги .NET на Linux хоста (которые могли бы работать, если вы можете использовать Mono или .NET Сердечник для выполнения процесса сборки
  • или выполнить этапы сборки компиляции & в сборке, а затем выбрать а также артефакты в части управления релизами TFS, где каждый этап выполняется одним агентом. Таким образом, ваш первый этап может собрать результаты сборки из списка артефактов сборки и выполнить шаги для создания изображений Docker и сохранения где-то или зарегистрировать их в вашем хранилище докеров.
  • Возможно, обновите свой агент сборки до версии 10-летия Windows 10 и включите оболочку Linux. Это решит проблему с требованием, но, скорее всего, не поможет вам реально создавать ваши файлы докеров в Linux.
+0

Большое спасибо Jessehouwing. Третий вариант звучит лучше. У меня есть вопросы о его исполнении. В версии TFS 2015 версии 2 или 3 есть опции «build», «test» и «Release». В части сборки я могу создать код в машине Windows и создать артефакты. После этого, как я буду делать шаги докера? Что именно вы подразумеваете под управлением Releaseae Management TFS? Это опция «Release»? Но я вижу, что каждое определение выпуска связано с построением, и он принимает только тот агент, который имеет сборку. – Raji

+0

Я действительно имею в виду вкладку release. Ваш агент Windows создаст код и опубликует артефакты кода. На этапе выпуска вы получаете артефакты из сборки и могут быть настроены на использование другого агента для выполнения этапа выпуска. Он использует один и тот же механизм пула и спроса для выбора агента. – jessehouwing

+0

Спасибо Jessehouwing. Третий вариант работает отлично – Raji