Обновления
Я собираюсь предложить здесь поставщика возможностей в качестве обновления моего поста. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
В настоящее время у нас есть несколько поставщиков возможностей в исходном коде агента:
https://github.com/microsoft/azure-pipelines-agent/tree/master/src/Microsoft.VisualStudio.Services.Agent/Capabilities
- Агент
- Среда
- Nix
- PowerShell
Предлагается один дополнительный поставщик с именем ExecutableCapabilitiesProvider
.
Thisновый ExecutableCapabilitiesProvider, вероятно, будет иметь файл конфигурации, который можно редактировать на компьютере агента. Формат этого файла, вероятно, может быть следующим:
#name,executable
pip,pip3 freeze
xyz,/usr/bin/xyz-runner
abc,sh -C "ls -l /blah/blah"
Как сопровождающий пул с собственным размещением, я настроил бы этот файл для записей, подходящих мне, и чтобы агент запускал его при запуске. Таким образом, я не жестко программирую какие-либо значения для своих возможностей, а скорее определяю их при запуске.
И я бы пошел еще дальше и добавил новый вызов API для добавления возможностей, более гибких, чемтекущий запрашивает имя / значения. Например, можно изменить параметры на Name, Provider, Params
:
efg, NixProvider, /path/to/file/efg
klm, ExecutableCapabilitiesProvider, /usr/bin/klm -a -b -c
Исходное сообщение
Я бы хотел, чтобы мои агенты сообщали о новых возможностях, которые не являются статичными, а скорее результатомкоманды или что-то подобное? Как я могу это сделать? Наши агенты работают на Linux-коробках. Если быть точным, я хотел бы иметь новую возможность под названием pip-packages
, и значение для нее является результатом команды pip freeze
, выполненной в оболочке.