Недавно я начал сталкиваться с ошибкой в моем конвейере Azure DevOps, который ранее был построен без каких-либо проблем. Сообщение об ошибке следующее:
В пуле Default не найден агент, удовлетворяющий следующему требованию: Agent.Version. Все требования: Agent.Version -gtVersion 2.220.0
Наша версия агента сборки на данный момент — 2.170.1.
Я уверен, что в конфигурацию конвейера или проект не было внесено никаких изменений, которые могли бы вызвать эту проблему. Может ли это быть связано с недавним обновлением программного обеспечения на сервере сборки или с какими-либо изменениями в самом Azure DevOps?
Вот шаги, которые я предпринял для устранения проблемы:
Проверена версия агента в пуле по умолчанию — 2.170.1. Проверено наличие последних обновлений или изменений в конфигурации проекта и конвейера. Буду признателен за любые идеи и предложения по решению этой проблемы. Есть ли способ заставить конвейер использовать существующую версию агента или мне следует обновить агент до более новой версии? Если обновление агента является рекомендуемым подходом, каковы шаги для этого?
Можете ли вы предоставить подробный YAML-файл вашего конвейера, содержащий все задачи и версии задач, установленные в конвейере? В Azure Pipelines многие задачи предъявляют свои требования. Разные задачи или версии задач могут иметь разные требования. Когда вы добавляете эти задачи в задания конвейеров, необходимые требования автоматически устанавливаются на уровне заданий. Когда вы удаляете задачи, требования также удаляются автоматически.
Встроенные задачи Azure Pipelines можно просмотреть в документации «Справочник по задачам Azure Pipelines». На этой странице вы можете открыть документацию любой встроенной задачи, чтобы просмотреть Demands
из требований каждой задачи.
В связи с вашей проблемой я рекомендую вам попытаться обновить все агенты в пуле до новой версии.
для некоторых задач требуется версия агента выше 2.xxx, вы можете обновить агент до версии 3
YAML-файл @BrightRan-MSFT содержит более 2374 символов.
@MaxCHien, есть ли какой-нибудь способ определить задачи, для которых требуется версия выше 2.170.x?
@Dinesh, Как упоминалось выше, для встроенных задач Azure Pipelines вы можете открыть документацию каждой задачи, чтобы проверить необходимые Demands
из раздела «Требования». Перед задачами, предоставляемыми расширениями, проверьте README расширений, чтобы узнать, есть ли какие-либо инструкции для Demands
задач. Рекомендуемый способ избежать этой проблемы — поддерживать актуальность агентов.
@Dinesh, вы можете предоставить YAML задания, в котором сообщается об ошибке.
Шаги @BrightRan-MSFT: ............ - задача: gitversion/execute@0 name: Выполнить входные данные: useConfigFile: $(DetectGitVersionConfig.GitVersionConfigExists) configFilePath: ${{parameters.configFilePath }} displayName : Выполните GitVersion, а затем я проверю раздел «Требования». Спасибо за ваш вклад. Ценить это.
@Dinesh, пожалуйста, опубликуйте в своем вопросе отформатированный контент YAML, чтобы он был хорошо читаемым. А работа содержит только задачу gitversion/execute@0
?
Давайте продолжим обсуждение в чате.
@BrightRan-MSFT Это единственная задача (gitversion/execute@0), определенная в gitversion.yml, и существует несколько сценариев PowerShell. Я просмотрел документ, который вы упомянули ранее, но не смог найти задачу, связанную с gitversion/execute@0.
Как мы уже обсуждали в комментариях выше, рекомендуется обновить агенты в вашем пуле до последней версии.
Вы можете открыть пул агентов и нажать кнопку «Обновить все агенты», чтобы обновить все агенты в пуле.
Вы можете включить в пуле опцию «Разрешить агентам в этом пуле автоматически обновляться». Когда станет доступна новая версия агента, она автоматически обновит агент перед запуском заданий конвейера.
Кроме того, как уже упоминалось @Max CHien
, Azure DevOps выпустила Агент версии 3.x. Мы рекомендуем вам рассмотреть возможность обновления локальных агентов до версии 3.x
. Вам необходимо скачать установочный пакет Агента версии 3.х и установить его на свои машины. Если вам больше не нужны агенты версии 2.x
, вы можете удалить их.
Обновлено:
Если вы используете Azure DevOps Server/TFS (локально), агент версии 3.x доступен начиная с Azure DevOps Server 2022.1
. Младшие версии недоступны. См. «Агент версии 3.x»
Поскольку вы используете Azure DevOps Server 2020 с довольно старой версией обновления/исправления (Version Dev18.M170.8
), версия агента 3.x недоступна. Вы можете загрузить последнюю версию агента 2.x из репозитория GitHub (v2.220.0).
Кроме того, согласно заявлению в «Примечаниях к выпуску Azure DevOps Server 2020», если вы обновитесь до последней версии обновления/исправления (Update 0.2 Patch 6
) Azure DevOps Server 2020, вы сможете использовать агент версии 3.x.
РЕДАКТИРОВАТЬ_2:
фатально: не репозиторий git (или любой из родительских каталогов)
Убедитесь, что вы правильно установили задачу оформления заказа и отключили поверхностное клонирование для этой задачи.
steps:
- checkout: self
fetchDepth: 0 # Disable shallow clone.
Ошибка: не удалось найти исполняемый файл: «dotnet-gitversion». Убедитесь, что путь к файлу существует или файл можно найти в каталоге, указанном переменной среды PATH.
Перед задачей «Выполнение GitVersion» (gitversion/execute
) необходимо запустить задачу «Настройка GitVersion» (gitversion/setup
), иначе шаг «Выполнение» завершится с этой ошибкой. См. «Примеры использования задач GitVersion».
steps:
- checkout: self
fetchDepth: 0
- task: gitversion/setup@1
displayName: 'Install GitVersion'
inputs:
versionSpec: '5.x'
preferLatestVersion: true
- task: gitversion/execute@1
displayName: 'Generate Version'
Спасибо за подробное объяснение. На данный момент я не хочу обновлять существующий агент, поскольку некоторые другие конвейеры настроены на использование этого агента. Ничего, если я установлю новый агент на том же компьютере и настрою пул по умолчанию для использования нового агента?
@Dinesh, Конечно, вы можете настроить несколько агентов с разными версиями агентов в одном пуле.
Привет, Bright Ran-MSFT, я пытался создать новый агент, но загруженная версия агента VSTS — 2.170.1. Это версия Azure DevOps Server — версия Dev18.M170.8. Этот сервер поддерживает только версию 2.170.1? В этом случае могу ли я загрузить последнюю версию агента VSTS с сайта github.com/microsoft/azure-pipelines-agent/releases и установить ее? Это будет работать?
@Dinesh, для Azure DevOps Server/TFS агент версии 3.x доступен начиная с Azure DevOps Server 2022.1
. См. РЕДАКТИРОВАТЬ в моем ответе.
Привет, Bright Ran-MSFT, я установил 2.220.0 и установил новый пул. Когда я запускаю сборку, я получаю эту ошибку. фатальный: не репозиторий git (или какой-либо из родительских каталогов): .git Команда: dotnet-gitversion C:/agent/vsts-agent/_work/1/s /output json /output buildserver /config C:\agent\vsts -agent_work\1\s\GitVersion.yml ##[ошибка]Ошибка: не удалось найти исполняемый файл: «dotnet-gitversion». Убедитесь, что путь к файлу существует или файл можно найти в каталоге, указанном переменной среды PATH. Также убедитесь, что файл имеет допустимое расширение для исполняемого файла.
@Dinesh, я обновил свой ответ выше, добавив больше предложений. См. EDIT_2.
Привет Брайт Ран-MSFT, спасибо за ваш ответ. У меня есть сомнения: в нашей предыдущей успешной сборке, когда я проверил журналы GitVersion, была выполнена команда Agent: Команда «Azure Pipelines»: dotnet-gitversion C:/agent/i1/_work/39/s /output json/ вывод buildserver /config C:\agent\i1_work\39\s\GitVersion.yml Но с неудачной сборкой после обновления агента. Команда: Агент: «Azure Pipelines». Команда: git rev-parse --is-shallow-repository. Есть какие-нибудь мысли по этому поводу?
@Dinesh, это может быть связано с обновлением агента и самого расширения GitTool.
Привет, Брайт Ран-MSFT, я обновил gitversion ymal, чтобы сначала настроить его перед выполнением задачи, и это сработало. Спасибо за вашу помощь, очень ценю.
Привет, Брайт Ран-MSFT, после настройки агента. Я создал коммит с +semver:minor. Моя версия пакета была 2.1.0, и с коммитом я ожидал увеличить номер версии на 1, что означает 2.2.0, вместо этого пакет был обновлен до 2.1.1. Есть идеи?
Вы также проверили
pool
в самом файле YAML?