Как запустить конвейер для указанного агента c из пула в Azure DevOPS - PullRequest
1 голос
/ 07 августа 2020

Мы используем Azure DevOps для CI / CD приложений iOS. Мы предоставили ma c машин с виртуальными машинами на борту, и Azure агентов DevOps установлены на этих виртуальных машинах.

Иногда наши конвейеры выходят из строя из-за нестабильности виртуальной машины агента. Как обеспечить возможность в конвейере для запуска задания на конкретном c агенте из пула? Это было легко достижимо и в Jenkins, и в TeamCity. Однако здесь мы используем определения YAML для конвейеров, и это кажется более сложным.

Ответы [ 2 ]

1 голос
/ 10 августа 2020

, но имейте в виду, что: 1. Я бы хотел выбрать его, щелкнув «Выполнить задание», 2. Список доступных агентов должен быть представлен в виде раскрывающегося меню 3. По умолчанию он должен использовать случайный агент из пула

Чтобы добиться этого в файле YAML, мы могли бы определить два параметров времени выполнения , один из параметров используется для выбора указанного агента из раскрывающегося списка, один используется, чтобы решить, использовать ли определенный c агент или случайный агент по умолчанию.

другими словами, нам нужно использовать параметр для выбора требований и другой параметр для отключения / включения предыдущего запроса. Если мы отключим предыдущее требование, Azure DevOps будет использовать случайный агент по умолчанию.

Я установил следующий пример файла YAML:

parameters:
- name: IfNeedDemands
  type: boolean
  default: False


- name: AgentSelect
  displayName: Agent Select
  type: string
  values:
  - VsAgent1
  - VsAgent2
  - VsAgent3
  - VsAgent4

trigger: none

jobs:
- job: build
  
  displayName: build
  pool: 
    name: MyPrivateAgent
    ${{ if eq(parameters.IfNeedDemands, true) }}:
      demands: Agent.Name -equals ${{ parameters.AgentSelect }}

  steps:
  - script: echo The value is ${{ parameters.AgentSelect }}

В приведенном выше примере параметр IfNeedDemands с синтаксис ${{ if eq(parameters.IfNeedDemands, true) }}: используется для определения, включать ли требует .

Затем параметр AgentSelect используется для выбора частного агента.

введите описание изображения здесь

Я проверил, работает, как я ожидал, вы можете проверить, соответствует ли он вашим потребностям.

1 голос
/ 07 августа 2020

Я оставил комментарий, иллюстрирующий это. Однако вот официальная документация о том, как это будет настроено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...