У меня есть несколько трубопроводов, которые должны работать на определенных машинах. Я выполняю это, используя два метода.
Первый - использование среды. Я назначаю конкретные конвейеры для конкретной среды (например, Developement, QA, Production). Затем я назначаю агента, который имеет возможность выполнять задачи/задания, связанные с развитием, в среду разработки. Я назначаю агенты, которые могут выполнять задачи/задания, связанные с QA, в среду QA.
Это гарантирует, что конвейеры, которые находятся в среде разработки, выполняются только агентами, которые также назначаются среде разработки.
Если ваш агент имеет возможность выполнять как задачи разработки, так и задачи QA, назначьте агент как для среды разработки, так и для обеспечения качества.
Вы можете использовать эту же концепцию, чтобы гарантировать, что только агенты Windows находятся в конкретной среде.
Например, вы можете иметь среду разработки, которую вы назначаете конвейерам и агентам, которые должны обрабатывать сборки Windows. Другой называется Development-Linux, который вы назначаете агентам и конвейерам, которые должны обрабатывать сборки Linux.
Поскольку у меня есть агенты, которые могут строить для нескольких сред (Dev, QA и Prop), я также использую «Ресурсы», которые назначены на вкладке «Настройки работы». Если задание необходимо выполнить на хосте Windows, я назначу ресурс «win2012». Это говорит мне, что агент должен иметь ресурс «Windows 2012» для выполнения этой конкретной задачи.
Я назначаю агенту ресурс «win2012», чтобы указать, что он является ресурсом Windows 2012.
С учетом конфигурации среды и параметров ресурса задание будет выполняться только агентом, который удовлетворяет требованиям к ресурсам и находится в надлежащей среде.
Если у вас есть несколько требований к ресурсам для задачи, которую вы можете назначить каждому из них, используя список, разделенный запятыми. Некоторые из ресурсов, которые я использую, - msbuild, subversion, sqlcmd.Это говорит мне, что агент должен иметь доступ к msbuild (для компиляции кода), subversion (для его получения из SVN) и sqlcmd (для выполнения SQL-запросов к SQL Server). Затем я отмечаю агенты, которые содержат эти конкретные ресурсы. Только если агенту соответствуют все эти требования к ресурсам, будет назначена задача.
Я думаю, что опция ресурсов в агенте и заданиях будет делать магию. благодаря – user3121011