Поделиться через


Использование предопределенных переменных

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Переменные дают вам удобный способ переноса ключевых бит данных в различные части вашего конвейера. Здесь приведен список заранее определенных переменных, доступных вам для применения. Существует несколько других предопределенных переменных, но они в основном для внутреннего использования.

Эти переменные автоматически задаются системой и доступны только для чтения. (Исключения: Build.Clean и System.Debug.)

В конвейерах YAML можно ссылаться на предопределенные переменные как переменные среды. Например, переменная Build.ArtifactStagingDirectory становится переменной BUILD_ARTIFACTSTAGINGDIRECTORY.

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

Узнайте больше о работе с переменными.

Build.Clean

Это нерекомендуемая переменная, которая изменяет способ очистки источника агента сборки. Сведения о том, как очистить источник, см. в статье "Очистка локального репозитория" агента.

System.AccessToken

System.AccessToken — это специальная переменная, которая несет маркер безопасности, используемый выполняющейся сборкой.

В YAML необходимо явно сопоставить System.AccessToken конвейер с помощью переменной. Это можно сделать на шаге или уровне задач:

steps:
  - script: |
      echo "Using System.AccessToken to authenticate"
      git clone https://$(System.AccessToken)@dev.azure.com/yourorganization/yourproject/_git/yourrepository
    displayName: 'Clone repository using System.AccessToken'
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)

Вы можете настроить область по умолчанию для System.AccessToken использования области авторизации задания сборки.

System.Debug

Для более подробных журналов для отладки проблем конвейера определите System.Debug и задайте для него значение true.

  1. Измените конвейер.

  2. Выберите Переменные.

  3. Добавьте новую переменную с именем System.Debug и значением true.

    Задайте для системной отладки значение true

  4. Сохраните новую переменную.

Параметр System.Debug настройки true подробных журналов для всех запусков. Подробные журналы можно также настроить для одного запуска с помощью флажка Enable system диагностика.

Можно также задать System.Debug true в качестве переменной в конвейере или шаблоне.

variables:
  system.debug: 'true'

Если System.Debug задано trueзначение , для дополнительной переменной Agent.Diagnostic задано значение true. Когда Agent.Diagnostic это trueтак, агент собирает больше журналов, которые можно использовать для устранения неполадок с сетью для локальных агентов. Дополнительные сведения см. в разделе Сетевая диагностика для локальных агентов.

Примечание.

Переменная Agent.Diagnostic доступна с агентом версии 2.200.0 и выше.

Дополнительные сведения см. в разделе "Просмотр журналов для диагностики проблем конвейера".

Переменные агента (DevOps Services)

Примечание.

Переменные агента можно использовать в качестве переменных среды в скриптах и в качестве параметров в задачах сборки. Их нельзя использовать для настройки номера сборки или применения метки или тега элемента управления версиями.

«Переменная» Description
Agent.BuildDirectory Локальный путь агента, в котором создаются все папки для заданного конвейера сборки. Эта переменная имеет то же значение, что Pipeline.Workspaceи . Например: /home/vsts/work/1.
Agent.ContainerMapping Сопоставление имен ресурсов контейнера в YAML с идентификаторами Docker во время выполнения.

Пример следует за таблицей.
Agent.HomeDirectory Каталог, в который устанавливается агент. Это содержит программное обеспечение агента. Например: c:\agent.
Agent.Id Идентификатор агента.
Agent.JobName Имя выполняемого задания. Обычно это будет "Задание"; или "__default", но в сценариях с несколькими конфигурациями будет конфигурация.
Agent.JobStatus Состояние сборки.
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (частично успешно)
  • Skipped (последнее задание)
Переменная среды должна быть указана как AGENT_JOBSTATUS. Более ранние agent.jobstatus версии доступны для обратной совместимости.
Agent.MachineName Имя компьютера, на котором установлен агент.
Agent.Name Имя агента, зарегистрированного в пуле.

Если вы используете локальный агент, то это имя указывается вами. См. агенты.
Agent.OS Операционная система узла агента. Допустимые значения:
  • Windows_NT
  • Darwin
  • Linux
Если вы работаете в контейнере, узел агента и контейнер могут работать в разных операционных системах.
Agent.OSArchitecture Архитектура процессора операционной системы узла агента. Допустимые значения:
  • X86
  • X64
  • ARM
Agent.TempDirectory Временная папка, которая очищается после каждого задания конвейера. Этот каталог используется задачами, такими как задача интерфейса командной строки .NET Core для хранения временных элементов, таких как результаты теста перед публикацией.

Например, /home/vsts/work/_temp для Ubuntu.
Agent.ToolsDirectory Каталог, используемый задачами, такими как установщик инструментов node и использование версии Python для переключения между несколькими версиями средства.

Эти задачи добавляют средства из этого каталога PATH , чтобы последующие шаги сборки могли использовать их.

Узнайте об управлении этим каталогом в локальном агенте.
Agent.WorkFolder Рабочий каталог для этого агента.

Например: c:\agent_work.

Примечание. Этот каталог не гарантируется для записи задачами конвейера (например, при сопоставлении с контейнером)

Пример agent.ContainerMapping:

{
  "one_container": {
    "id": "bdbb357d73a0bd3550a1a5b778b62a4c88ed2051c7802a0659f1ff6e76910190"
  },
  "another_container": {
    "id": "82652975109ec494876a8ccbb875459c945982952e0a72ad74c91216707162bb"
  }
}

Переменные сборки (DevOps Services)

При использовании переменной в шаблоне, который не помечен как доступный в шаблонах, переменная не будет отображаться. Переменная не будет отображаться, так как его значение недоступно в области шаблона.

«Переменная» Description Доступно в шаблонах?
Build.ArtifactStagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BuildId Идентификатор записи для завершенной сборки. No
Build.BuildNumber Имя завершенной сборки, также известное как номер выполнения. Вы можете указать , что входит в это значение.

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

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BuildUri Универсальный код ресурса (URI) для сборки. Например: vstfs:///Build/Build/1430.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BinariesDirectory Локальный путь агента, который можно использовать в качестве выходной папки для скомпилированных двоичных файлов.

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

Например: c:\agent_work\1\b.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.ContainerId Идентификатор контейнера для артефакта. При отправке артефакта в конвейере он добавляется в контейнер, который относится к конкретному артефакту. No
Build.CronSchedule.DisplayName Расписание displayName cron, которое активировало запуск конвейера. Эта переменная устанавливается только в том случае, если запуск конвейера активируется запланированным триггером YAML. Дополнительные сведения см. в определении schedules.cron — Build.CronSchedule.DisplayName Да
Build.DefinitionName Имя конвейера сборки.

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.DefinitionVersion Версия конвейера сборки. Да
Build.QueuedBy См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.QueuedById См. статью "Как заданы переменные идентификации?". Да
Build.Reason Событие, вызвавшее выполнение сборки.
  • Manual: пользователь вручную застроил сборку.
  • IndividualCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или проверкой TFVC.
  • BatchedCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или возвратом TFVC, и выбраны изменения пакетной службы.
  • Schedule: запланированный триггер.
  • ValidateShelveset: пользователь вручную застроил сборку определенного набора полок TFVC.
  • CheckInShelveset: воротный триггер регистрации .
  • PullRequest: сборка была активирована политикой ветви Git, требующей сборки.
  • BuildCompletion: сборка была активирована другой сборкой
  • ResourceTrigger: сборка была активирована триггером ресурса или была активирована другой сборкой.
См . инструкции по триггерам конвейера сборки, улучшению качества кода с помощью политик ветвей.
Да
Build.Repository.Clean Значение, выбранное для очистки в параметрах исходного репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.LocalPath Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Важно отметить: если вы извлекаете только один репозиторий Git, этот путь является точным путем к коду.

При извлечении нескольких репозиториев поведение выглядит следующим образом (и может отличаться от значения переменной Build.SourcesDirectory):
  • Если шаг выхода для репозитория самостоятельного (основного) не определен, или путь к извлечению является путь $(Pipeline.Workspace)/s/&<RepoName> по умолчанию для самостоятельного репозитория, значение этой переменной возвращается к значению по умолчанию.$(Pipeline.Workspace)/s
  • Если для самостоятельного (первичного) репозитория установлен пользовательский путь к извлечению (и это не его путь по умолчанию с несколькими заказами), эта переменная содержит точный путь к самостоятельному репозиторию.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.ID Уникальный идентификатор репозитория.

Это не изменится, даже если имя репозитория выполняется.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Name Имя триггерного репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Provider Тип триггерного репозитория.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Tfvc.Workspace Определяется, система управления версиями Team Foundation ли репозиторий. Имя рабочей области TFVC, используемой агентом сборки.

Например, если агент.BuildDirectory c:\agent_work\12 и Agent.Id есть 8, имя рабочей области может быть следующим: ws_12_8

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Uri URL-адрес для триггерного репозитория. Например:
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.RequestedFor См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.RequestedForEmail См. статью "Как заданы переменные идентификации?". Да
Build.RequestedForId См. статью "Как заданы переменные идентификации?". Да
Build.SourceBranch Ветвь триггерного репозитория сборка была помещена в очередь. Некоторые примеры:
  • Ветвь репозитория Git: refs/heads/main
  • Запрос на вытягивание репозитория Git: refs/pull/1/merge
  • Ветвь репозитория TFVC: $/teamproject/main
  • Вход в репозиторий TFVC: Gated_2016-06-06_05.20.51.4369;username@live.com
  • Сборка набора полок репозитория TFVC: myshelveset;username@live.com
  • При активации конвейера тегом: refs/tags/your-tag-name
При использовании этой переменной в формате номера сборки символы косой черты (/) заменяются символами _подчеркивания.

Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Да
Build.SourceBranchName Имя ветви в триггерном репозитории сборки было в очереди.
  • Ветвь репозитория Git, запрос на вытягивание или тег: последний сегмент пути в ссылке. Например, в refs/heads/main этом значении есть main. В refs/heads/feature/tools этом значении имеется toolsзначение . В refs/tags/your-tag-name этом значении имеется your-tag-nameзначение .
  • Ветвь репозитория TFVC: последний сегмент пути к корневому серверу рабочей области. Например, в $/teamproject/main этом значении есть main.
  • Репозиторий TFVC, включаемые в систему или сборка набора полок, — это имя набора полок. Например, Gated_2016-06-06_05.20.51.4369;username@live.com или myshelveset;username@live.com.
Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Да
Build.SourcesDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы.

Важно отметить: если вы извлекаете только один репозиторий Git, этот путь является точным путем к коду. Если вы извлекаете несколько репозиториев, оно возвращается к значению по умолчанию, то $(Pipeline.Workspace)/sесть, даже если локальный (первичный) репозиторий извлекается в пользовательский путь, отличный от его пути $(Pipeline.Workspace)/s/<RepoName> по умолчанию для нескольких проверок (в этом отношении переменная отличается от поведения переменной Build.Repository.LocalPath).

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.SourceVersion Последнее изменение элемента управления версиями триггерного репозитория, включенного в эту сборку.
  • Git: идентификатор фиксации.
  • TFVC: набор изменений.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
Build.SourceVersionMessage Комментарий фиксации или набора изменений для триггерного репозитория. Мы усечены сообщение на первую строку или 200 символов, в зависимости от того, что меньше.

Соответствует Build.SourceVersionMessage сообщению о Build.SourceVersion фиксации. Фиксация Build.SourceVersion для сборки PR — это фиксация слияния (а не фиксация в исходной ветви).

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Кроме того, эта переменная доступна только на уровне шага и недоступна на уровнях задания или этапа (т. е. сообщение не извлекается до запуска задания и извлечения кода).

Примечание. Эта переменная доступна в TFS 2015.4.

Примечание. Переменная Build.SourceVersionMessage не работает с классическими конвейерами сборки в репозиториях Bitbucket при включении пакетной службы при включении сборки.
No
Build.StagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Git.SubmoduleCheckout Значение, выбранное для вложенных модулей checkout, на вкладке репозитория. При извлечении нескольких репозиториев это значение отслеживает параметр триггера репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.SourceTfvcShelveset Определяется, система управления версиями Team Foundation ли репозиторий.

Если вы используете воротную сборку или сборку с набором полок, для этого задано имя набора полок, который вы создаете.

Примечание. Эта переменная дает недопустимое значение для использования сборки в формате номера сборки.
No
Build.TriggeredBy.BuildId Если сборка была активирована другой сборкой, эта переменная имеет значение BuildID триггера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.DefinitionId Если сборка была активирована другой сборкой, эта переменная имеет значение DefinitionID триггера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.DefinitionName Если сборка была активирована другой сборкой, эта переменная имеет имя запускающего конвейера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.BuildNumber Если сборка была активирована другой сборкой, эта переменная имеет значение числа триггерной сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.ProjectID Если сборка была активирована другой сборкой, эта переменная имеет идентификатор проекта, содержащего триггерную сборку. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Common.TestResultsDirectory Локальный путь к агенту, в котором создаются результаты теста. Например: c:\agent_work\1\TestResults.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No

Переменные конвейера (DevOps Services)

«Переменная» Description
Pipeline.Workspace Каталог рабочей области для определенного конвейера. Эта переменная имеет то же значение, что Agent.BuildDirectoryи . Например, /home/vsts/work/1.

Совет

При использовании классических конвейеров выпуска можно использовать классические выпуски и переменные артефактов для хранения и доступа к данным во всем конвейере.

Переменные задания развертывания (DevOps Services)

Эти переменные относятся к определенному заданию развертывания и будут разрешены только во время выполнения задания.

«Переменная» Description
Environment.Name Имя среды, целевой в задании развертывания, для выполнения шагов развертывания и записи журнала развертывания. Например, smarthotel-dev.
Environment.Id Идентификатор среды, целевой в задании развертывания. Например, 10.
Environment.ResourceName Имя конкретного ресурса в среде, целевой в задании развертывания, для выполнения шагов развертывания и записи журнала развертывания. Например, это пространство имен Kubernetes, bookings которое было добавлено в качестве ресурса в среду smarthotel-dev.
Environment.ResourceId Идентификатор конкретного ресурса в среде, целевой в задании развертывания для выполнения шагов развертывания. Например, 4.
Strategy.Name Имя стратегии развертывания: canaryили runOncerolling.
Strategy.CycleName Текущее имя цикла в развертывании. Параметры: PreIteration, Iterationили PostIteration.

Системные переменные (DevOps Services)

При использовании переменной в шаблоне, который не помечен как доступный в шаблонах, переменная не будет отображаться. Переменная не будет отображаться, так как его значение недоступно в области шаблона.

«Переменная» Description Доступно в шаблонах?
System.AccessToken Используйте маркер OAuth для доступа к REST API.

Используйте System.AccessToken из скриптов YAML.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
System.CollectionId GUID коллекции TFS или организации Azure DevOps. Да
System.CollectionUri URI коллекции TFS или организации Azure DevOps. Например: https://dev.azure.com/fabrikamfiber/. Да
System.DefaultWorkingDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Да
System.DefinitionId Идентификатор конвейера сборки. Да
System.HostType Задайте значение build , если конвейер является сборкой. В выпуске значения предназначены deployment для задания группы развертывания, gates во время оценки шлюзов и release для других заданий (агентов и агентов без агента). Да
System.JobAttempt Установите значение 1 при первой попытке этого задания и увеличивается каждый раз при повторном выполнении задания. No
System.JobDisplayName Имя, доступное для чтения человеком, заданное заданию. No
System.JobId Уникальный идентификатор для одной попытки одного задания. Значение уникально для текущего конвейера. No
System.JobName Имя задания, обычно используемое для выражения зависимостей и доступа к выходным переменным. No
System.OidcRequestUri Создайте проверку подлинности с идентификатором idToken Записи с помощью OpenID Connect (OIDC). Подробнее. Да
System.PhaseAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении задания.

Примечание. "Этап" является в основном избыточной концепцией, которая представляет время разработки для задания (в то время как задание было версией среды выполнения этапа). В основном мы удалили концепцию "этап" из Azure Pipelines. Матрица и многоконфигурные задания являются единственным местом, где "этап" по-прежнему отличается от "задания". Один этап может создать экземпляры нескольких заданий, которые отличаются только в их входных данных.
No
System.PhaseDisplayName Читаемое человеком имя, заданное этапу. No
System.PhaseName Строковый идентификатор задания, обычно используемый для выражения зависимостей и доступа к выходным переменным. No
System.PlanId Строковый идентификатор для одного запуска конвейера. No
System.PullRequest.IsFork Если запрос на вытягивание выполняется из вилки репозитория, эта переменная имеет значение True.

В противном случае для него задано значение False.
Да
System.PullRequest.PullRequestId Идентификатор запроса на вытягивание, вызвавшего эту сборку. Например: 17. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). No
System.PullRequest.PullRequestNumber Количество запроса на вытягивание, вызвавшего эту сборку. Эта переменная заполняется для запросов на вытягивание из GitHub с другим идентификатором запроса на вытягивание и номером запроса на вытягивание. Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.PullRequest.targetBranchName Имя целевой ветви для запроса на вытягивание. Эта переменная может использоваться в конвейере для условного выполнения задач или шагов на основе целевой ветви запроса на вытягивание. Например, может потребоваться активировать другой набор тестов или средств анализа кода в зависимости от ветви, в которой изменения объединяются. No
System.PullRequest.SourceBranch Ветвь, которая проверяется в запросе на вытягивание. Например, refs/heads/users/raisa/new-feature для Azure Repos. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.PullRequest.SourceCommitId Фиксация, которая проверяется в запросе на вытягивание. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви.
System.PullRequest.SourceRepositoryURI URL-адрес репозитория, содержащего запрос на вытягивание. Например: https://dev.azure.com/ouraccount/_git/OurProject. No
System.PullRequest.TargetBranch Ветвь, которая является целью запроса на вытягивание. Например, refs/heads/main если репозиторий находится в Azure Repos и main когда репозиторий находится в GitHub. Эта переменная инициализируется только в том случае, если сборка запущена из-за Git PR, затронутой политикой ветви. Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.StageAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении этапа. No
System.StageDisplayName Читаемое человеком имя, заданное сцене. No
System.StageName Строковый идентификатор этапа, обычно используемый для выражения зависимостей и доступа к выходным переменным. No
System.TeamFoundationCollectionUri URI коллекции TFS или организации Azure DevOps. Например: https://dev.azure.com/fabrikamfiber/.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
System.TeamProject Имя проекта, содержащего эту сборку. Да
System.TeamProjectId Идентификатор проекта, к которому принадлежит эта сборка. Да
System.TimelineId Строковый идентификатор для сведений о выполнении и журналах одного запуска конвейера. No
TF_BUILD True Установите значение, если скрипт выполняется задачей сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No

Проверяет переменные (DevOps Services)

«Переменная» Description
Checks.StageAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении этапа.

Эта переменная может использоваться только в рамках утверждения или проверки среды. Например, можно использовать $(Checks.StageAttempt) в проверке REST API invoke.

Добавьте попытку этапа в качестве параметра.

Переменные агента (DevOps Server 2022)

Примечание.

Переменные агента можно использовать в качестве переменных среды в скриптах и в качестве параметров в задачах сборки. Их нельзя использовать для настройки номера сборки или применения метки или тега элемента управления версиями.

«Переменная» Description
Agent.BuildDirectory Локальный путь агента, в котором создаются все папки для заданного конвейера сборки. Эта переменная имеет то же значение, что Pipeline.Workspaceи . Например: /home/vsts/work/1.
Agent.ContainerMapping Сопоставление имен ресурсов контейнера в YAML с идентификаторами Docker во время выполнения. Пример следует за таблицей.
Agent.HomeDirectory Каталог, в который устанавливается агент. Это содержит программное обеспечение агента. Например: c:\agent.
Agent.Id Идентификатор агента.
Agent.JobName Имя выполняемого задания. Обычно это будет "Задание" или "__default", но в сценариях с несколькими конфигурациями будет конфигурация.
Agent.JobStatus Состояние сборки.
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (частично успешно)
  • Skipped (последнее задание)
Переменная среды должна быть указана как AGENT_JOBSTATUS. Более ранние agent.jobstatus версии доступны для обратной совместимости.
Agent.MachineName Имя компьютера, на котором установлен агент.
Agent.Name Имя агента, зарегистрированного в пуле.

Если вы используете локальный агент, то это имя указывается вами. См. агенты.
Agent.OS Операционная система узла агента. Допустимые значения:
  • Windows_NT
  • Darwin
  • Linux
Если вы работаете в контейнере, узел агента и контейнер могут работать с разными операционными системами.
Agent.OSArchitecture Архитектура процессора операционной системы узла агента. Допустимые значения:
  • X86
  • X64
  • ARM
Agent.TempDirectory Временная папка, которая очищается после каждого задания конвейера. Этот каталог используется задачами, такими как задача интерфейса командной строки .NET Core для хранения временных элементов, таких как результаты теста перед публикацией.

Например, /home/vsts/work/_temp для Ubuntu.
Agent.ToolsDirectory Каталог, используемый задачами, такими как установщик инструментов node и использование версии Python для переключения между несколькими версиями средства.

Эти задачи добавляют средства из этого каталога PATH , чтобы последующие шаги сборки могли использовать их.

Узнайте об управлении этим каталогом в локальном агенте.
Agent.WorkFolder Рабочий каталог для этого агента. Например: c:\agent_work.

Примечание. Этот каталог не гарантируется для записи задачами конвейера (например, при сопоставлении с контейнером).

Пример agent.ContainerMapping:

{
  "one_container": {
    "id": "bdbb357d73a0bd3550a1a5b778b62a4c88ed2051c7802a0659f1ff6e76910190"
  },
  "another_container": {
    "id": "82652975109ec494876a8ccbb875459c945982952e0a72ad74c91216707162bb"
  }
}

Переменные сборки (DevOps Server 2022)

При использовании переменной в шаблоне, который не помечен как доступный в шаблонах, переменная не будет отображаться. Переменная не будет отображаться, так как его значение недоступно в области шаблона.

«Переменная» Description Доступно в шаблонах?
Build.ArtifactStagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BuildId Идентификатор записи для завершенной сборки. No
Build.BuildNumber Имя завершенной сборки, также известное как номер выполнения. Вы можете указать , что входит в это значение.

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

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BuildUri Универсальный код ресурса (URI) для сборки. Например: vstfs:///Build/Build/1430.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BinariesDirectory Локальный путь агента, который можно использовать в качестве выходной папки для скомпилированных двоичных файлов.

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

Например: c:\agent_work\1\b.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.ContainerId Идентификатор контейнера для артефакта. При отправке артефакта в конвейере он добавляется в контейнер, который относится к конкретному артефакту. No
Build.CronSchedule.DisplayName Расписание displayName cron, которое активировало запуск конвейера. Эта переменная устанавливается только в том случае, если запуск конвейера активируется запланированным триггером YAML. Дополнительные сведения см. в определении schedules.cron — Build.CronSchedule.DisplayName. Эта переменная доступна в Azure DevOps Server 2022.1 и выше. Да
Build.DefinitionName Имя конвейера сборки.

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.DefinitionVersion Версия конвейера сборки. Да
Build.QueuedBy См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.QueuedById См. статью "Как заданы переменные удостоверения?. Да
Build.Reason Событие, вызвавшее выполнение сборки.
  • Manual: пользователь вручную застроил сборку.
  • IndividualCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или проверкой TFVC.
  • BatchedCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или возвратом TFVC, и выбраны изменения пакетной службы.
  • Schedule: запланированный триггер.
  • ValidateShelveset: пользователь вручную застроил сборку определенного набора полок TFVC.
  • CheckInShelveset: воротный триггер регистрации .
  • PullRequest: сборка была активирована политикой ветви Git, требующей сборки.
  • BuildCompletion: сборка была активирована другой сборкой
  • ResourceTrigger: сборка была активирована триггером ресурса или была активирована другой сборкой.
См . инструкции по триггерам конвейера сборки, улучшению качества кода с помощью политик ветвей.
Да
Build.Repository.Clean Значение, выбранное для очистки в параметрах исходного репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.LocalPath Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Важно отметить: если вы извлекаете только один репозиторий Git, этот путь является точным путем к коду. При извлечении нескольких репозиториев поведение выглядит следующим образом (и может отличаться от значения переменной Build.SourcesDirectory):
  • Если шаг выхода для репозитория самостоятельного (основного) не определен, или путь к извлечению является путь $(Pipeline.Workspace)/s/<RepoName> по умолчанию для самостоятельного репозитория, значение этой переменной возвращается к значению по умолчанию.$(Pipeline.Workspace)/s
  • Если для самостоятельного (первичного) репозитория установлен пользовательский путь к извлечению (и это не его путь по умолчанию с несколькими заказами), эта переменная содержит точный путь к самостоятельному репозиторию.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.ID Уникальный идентификатор репозитория.

Это не изменится, даже если имя репозитория выполняется.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Name Имя триггерного репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Provider Тип триггерного репозитория.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Tfvc.Workspace Определяется, система управления версиями Team Foundation ли репозиторий. Имя рабочей области TFVC, используемой агентом сборки.

Например, если агент.BuildDirectory и c:\agent_work\12 Agent.Id есть8, имя рабочей области может быть следующим: ws_12_8

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Uri URL-адрес для триггерного репозитория. Например:Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями. No
Build.RequestedFor См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.RequestedForEmail См. статью "Как заданы переменные идентификации?". Да
Build.RequestedForId См. статью "Как заданы переменные идентификации?". Да
Build.SourceBranch Ветвь триггерного репозитория сборка была помещена в очередь. Некоторые примеры:
  • Ветвь репозитория Git: refs/heads/main
  • Запрос на вытягивание репозитория Git: refs/pull/1/merge
  • Ветвь репозитория TFVC: $/teamproject/main
  • Вход в репозиторий TFVC: Gated_2016-06-06_05.20.51.4369;username@live.com
  • Сборка набора полок репозитория TFVC: myshelveset;username@live.com
  • При активации конвейера тегом: refs/tags/your-tag-name
При использовании этой переменной в формате номера сборки символы косой черты (/) заменяются символами _подчеркивания.

Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Да
Build.SourceBranchName Имя ветви в триггерном репозитории сборки было в очереди.
  • Ветвь репозитория Git, запрос на вытягивание или тег: последний сегмент пути в ссылке. Например, в refs/heads/main этом значении есть main. В refs/heads/feature/tools этом значении имеется toolsзначение . В refs/tags/your-tag-name этом значении имеется your-tag-nameзначение .
  • Ветвь репозитория TFVC: последний сегмент пути к корневому серверу рабочей области. Например, в $/teamproject/main этом значении есть main.
  • Репозиторий TFVC, включаемые в систему или сборка набора полок, — это имя набора полок. Например, Gated_2016-06-06_05.20.51.4369;username@live.com или myshelveset;username@live.com.
Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Да
Build.SourcesDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы.

Важно отметить: если вы извлекаете только один репозиторий Git, этот путь является точным путем к коду. Если вы извлекаете несколько репозиториев, оно возвращается к значению по умолчанию, то $(Pipeline.Workspace)/sесть, даже если локальный (первичный) репозиторий извлекается в пользовательский путь, отличный от его пути $(Pipeline.Workspace)/s/<RepoName> по умолчанию для нескольких проверок (в этом отношении переменная отличается от поведения переменной Build.Repository.LocalPath).

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.SourceVersion Последнее изменение элемента управления версиями триггерного репозитория, включенного в эту сборку.
  • Git: идентификатор фиксации.
  • TFVC: набор изменений.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
Build.SourceVersionMessage Комментарий фиксации или набора изменений для триггерного репозитория. Мы усечены сообщение на первую строку или 200 символов, в зависимости от того, что меньше.

Соответствует Build.SourceVersionMessage сообщению о Build.SourceVersion фиксации. Фиксация Build.SourceVersion для сборки PR — это фиксация слияния (а не фиксация в исходной ветви).

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Кроме того, эта переменная доступна только на уровне шага и недоступна на уровнях задания или этапа (т. е. сообщение не извлекается до запуска задания и извлечения кода).

Примечание. Эта переменная доступна в TFS 2015.4.

Примечание. Переменная Build.SourceVersionMessage не работает с классическими конвейерами сборки в репозиториях Bitbucket при включении пакетной службы при включении сборки.
No
Build.StagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Git.SubmoduleCheckout Значение, выбранное для вложенных модулей checkout, на вкладке репозитория. При извлечении нескольких репозиториев это значение отслеживает параметр триггера репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.SourceTfvcShelveset Определяется, система управления версиями Team Foundation ли репозиторий.

Если вы используете воротную сборку или сборку с набором полок, для этого задано имя набора полок, который вы создаете.

Примечание. Эта переменная дает недопустимое значение для использования сборки в формате номера сборки.
No
Build.TriggeredBy.BuildId Если сборка была активирована другой сборкой, эта переменная имеет значение BuildID триггера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.DefinitionId Если сборка была активирована другой сборкой, эта переменная имеет значение DefinitionID триггера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.DefinitionName Если сборка была активирована другой сборкой, эта переменная имеет имя запускающего конвейера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.BuildNumber Если сборка была активирована другой сборкой, эта переменная имеет значение числа триггерной сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Build.TriggeredBy.ProjectID Если сборка была активирована другой сборкой, эта переменная имеет идентификатор проекта, содержащего триггерную сборку. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Если вы активируете конвейер YAML, resourcesиспользуйте переменные ресурсов.
No
Common.TestResultsDirectory Локальный путь к агенту, в котором создаются результаты теста. Например: c:\agent_work\1\TestResults.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No

Переменные конвейера (DevOps Server 2022)

«Переменная» Description
Pipeline.Workspace Каталог рабочей области для определенного конвейера. Эта переменная имеет то же значение, что Agent.BuildDirectoryи . Например, /home/vsts/work/1.

Совет

При использовании классических конвейеров выпуска можно использовать классические выпуски и переменные артефактов для хранения и доступа к данным во всем конвейере.

Переменные задания развертывания (DevOps Server 2022)

Эти переменные относятся к определенному заданию развертывания и будут разрешены только во время выполнения задания.

«Переменная» Description
Environment.Name Имя среды, целевой в задании развертывания, для выполнения шагов развертывания и записи журнала развертывания. Например, smarthotel-dev.
Environment.Id Идентификатор среды, целевой в задании развертывания. Например, 10.
Environment.ResourceName Имя конкретного ресурса в среде, целевой в задании развертывания, для выполнения шагов развертывания и записи журнала развертывания. Например, это пространство имен Kubernetes, bookings которое было добавлено в качестве ресурса в среду smarthotel-dev.
Environment.ResourceId Идентификатор конкретного ресурса в среде, целевой в задании развертывания для выполнения шагов развертывания. Например, 4.
Strategy.Name Имя стратегии развертывания: canaryили runOncerolling.
Strategy.CycleName Текущее имя цикла в развертывании. Параметры: PreIteration, Iterationили PostIteration.

Системные переменные (DevOps Server 2022)

При использовании переменной в шаблоне, который не помечен как доступный в шаблонах, переменная не будет отображаться. Переменная не будет отображаться, так как его значение недоступно в области шаблона.

«Переменная» Description Доступно в шаблонах?
System.AccessToken Используйте маркер OAuth для доступа к REST API.

Используйте System.AccessToken из скриптов YAML.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
System.CollectionId GUID коллекции TFS или организации Azure DevOps. Да
System.CollectionUri URI коллекции TFS или организации Azure DevOps. Например: https://dev.azure.com/fabrikamfiber/. Да
System.DefaultWorkingDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Да
System.DefinitionId Идентификатор конвейера сборки. Да
System.HostType Задайте значение build , если конвейер является сборкой. В выпуске значения предназначены deployment для задания группы развертывания, gates во время оценки шлюзов и release для других заданий (агентов и агентов без агента). Да
System.JobAttempt Установите значение 1 при первой попытке этого задания и увеличивается каждый раз при повторном выполнении задания. No
System.JobDisplayName Имя, доступное для чтения человеком, заданное заданию. No
System.JobId Уникальный идентификатор для одной попытки одного задания. Значение уникально для текущего конвейера. No
System.JobName Имя задания, обычно используемое для выражения зависимостей и доступа к выходным переменным. No
System.PhaseAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении задания.

Примечание. "Этап" является в основном избыточной концепцией, которая представляет время разработки для задания (в то время как задание было версией среды выполнения этапа). В основном мы удалили концепцию "этап" из Azure Pipelines. Матрица и многоконфигурные задания являются единственным местом, где "этап" по-прежнему отличается от "задания". Один этап может создать экземпляры нескольких заданий, которые отличаются только в их входных данных.
No
System.PhaseDisplayName Читаемое человеком имя, заданное этапу. No
System.PhaseName Строковый идентификатор задания, обычно используемый для выражения зависимостей и доступа к выходным переменным. No
System.PlanId Строковый идентификатор для одного запуска конвейера. No
System.PullRequest.IsFork Если запрос на вытягивание выполняется из вилки репозитория, эта переменная имеет значение True. В противном случае для него задано значение False. Да
System.PullRequest.PullRequestId Идентификатор запроса на вытягивание, вызвавшего эту сборку. Например: 17. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). No
System.PullRequest.PullRequestNumber Количество запроса на вытягивание, вызвавшего эту сборку. Эта переменная заполняется для запросов на вытягивание из GitHub с другим идентификатором запроса на вытягивание и номером запроса на вытягивание. Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.PullRequest.targetBranchName Имя целевой ветви для запроса на вытягивание. Эта переменная может использоваться в конвейере для условного выполнения задач или шагов на основе целевой ветви запроса на вытягивание. Например, может потребоваться активировать другой набор тестов или средств анализа кода в зависимости от ветви, в которой изменения объединяются. No
System.PullRequest.SourceBranch Ветвь, которая проверяется в запросе на вытягивание. Например, refs/heads/users/raisa/new-feature для Azure Repos. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.PullRequest.SourceRepositoryURI URL-адрес репозитория, содержащего запрос на вытягивание. Например: https://dev.azure.com/ouraccount/_git/OurProject. No
System.PullRequest.TargetBranch Ветвь, которая является целью запроса на вытягивание. Например, refs/heads/main если репозиторий находится в Azure Repos и main когда репозиторий находится в GitHub. Эта переменная инициализируется только в том случае, если сборка запущена из-за Git PR, затронутой политикой ветви. Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.StageAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении этапа. No
System.StageDisplayName Читаемое человеком имя, заданное сцене. No
System.StageName Строковый идентификатор этапа, обычно используемый для выражения зависимостей и доступа к выходным переменным. No
System.TeamFoundationCollectionUri URI коллекции TFS или организации Azure DevOps. Например: https://dev.azure.com/fabrikamfiber/.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
System.TeamProject Имя проекта, содержащего эту сборку. Да
System.TeamProjectId Идентификатор проекта, к которому принадлежит эта сборка. Да
System.TimelineId Строковый идентификатор для сведений о выполнении и журналах одного запуска конвейера. No
TF_BUILD True Установите значение, если скрипт выполняется задачей сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No

Проверяет переменные (DevOps Server 2022)

«Переменная» Description
Checks.StageAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении этапа.
Эта переменная может использоваться только в рамках утверждения или проверки среды. Например, можно использовать $(Checks.StageAttempt) в проверке REST API invoke.
Добавьте попытку этапа в качестве параметра.

Переменные агента (DevOps Server 2020)

Примечание.

Переменные агента можно использовать в качестве переменных среды в скриптах и в качестве параметров в задачах сборки. Их нельзя использовать для настройки номера сборки или применения метки или тега элемента управления версиями.

«Переменная» Description
Agent.BuildDirectory Локальный путь агента, в котором создаются все папки для заданного конвейера сборки. Эта переменная имеет то же значение, что Pipeline.Workspaceи . Например: /home/vsts/work/1.
Agent.HomeDirectory Каталог, в который устанавливается агент. Это содержит программное обеспечение агента. Например: c:\agent.
Agent.Id Идентификатор агента.
Agent.JobName Имя выполняемого задания. Обычно это будет "Задание" или "__default", но в сценариях с несколькими конфигурациями будет конфигурация.
Agent.JobStatus Состояние сборки.
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (частично успешно)
  • Skipped (последнее задание)
Переменная среды должна быть указана как AGENT_JOBSTATUS. Более ранние agent.jobstatus версии доступны для обратной совместимости.
Agent.MachineName Имя компьютера, на котором установлен агент.
Agent.Name Имя агента, зарегистрированного в пуле.

Если вы используете локальный агент, то это имя задается вами. См. агенты.
Agent.OS Операционная система узла агента. Допустимые значения:
  • Windows_NT
  • Darwin
  • Linux
Если вы работаете в контейнере, узел агента и контейнер могут работать с разными операционными системами.
Agent.OSArchitecture Архитектура процессора операционной системы узла агента. Допустимые значения:
  • X86
  • X64
  • ARM processor
Agent.TempDirectory Временная папка, которая очищается после каждого задания конвейера. Этот каталог используется задачами, такими как задача интерфейса командной строки .NET Core для хранения временных элементов, таких как результаты теста перед публикацией.
Например, /home/vsts/work/_temp для Ubuntu.
Agent.ToolsDirectory Каталог, используемый задачами, такими как установщик инструментов node и использование версии Python для переключения между несколькими версиями средства.

Эти задачи добавляют средства из этого каталога PATH , чтобы последующие шаги сборки могли использовать их.

Узнайте об управлении этим каталогом в локальном агенте.
Agent.WorkFolder Рабочий каталог для этого агента. Например: c:\agent_work.

Примечание. Этот каталог не гарантируется для записи задачами конвейера (например, при сопоставлении с контейнером)

Переменные сборки (DevOps Server 2020)

При использовании переменной в шаблоне, который не помечен как доступный в шаблонах, переменная не будет отображаться. Переменная не будет отображаться, так как его значение недоступно в области шаблона.

«Переменная» Description Доступно в шаблонах?
Build.ArtifactStagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BuildId Идентификатор записи для завершенной сборки. No
Build.BuildNumber Имя завершенной сборки, также известное как номер выполнения. Вы можете указать , что входит в это значение.

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

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BuildUri Универсальный код ресурса (URI) для сборки. Например: vstfs:///Build/Build/1430.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.BinariesDirectory Локальный путь агента, который можно использовать в качестве выходной папки для скомпилированных двоичных файлов.

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

Например: c:\agent_work\1\b.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.ContainerId Идентификатор контейнера для артефакта. При отправке артефакта в конвейере он добавляется в контейнер, который относится к конкретному артефакту. No
Build.DefinitionName Имя конвейера сборки.

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В этих случаях формат метки завершится ошибкой.
Да
Build.DefinitionVersion Версия конвейера сборки. Да
Build.QueuedBy См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.QueuedById См. статью "Как заданы переменные идентификации?". Да
Build.Reason Событие, вызвавшее выполнение сборки.
  • Manual: пользователь вручную застроил сборку.
  • IndividualCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или проверкой TFVC.
  • BatchedCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или возвратом TFVC, и выбраны изменения пакетной службы.
  • Schedule: запланированный триггер.
  • ValidateShelveset: пользователь вручную застроил сборку определенного набора полок TFVC.
  • CheckInShelveset: воротный триггер регистрации .
  • PullRequest: сборка была активирована политикой ветви Git, требующей сборки.
  • BuildCompletion: сборка была активирована другой сборкой
  • ResourceTrigger: сборка была активирована триггером ресурса или была активирована другой сборкой.
См . инструкции по триггерам конвейера сборки, улучшению качества кода с помощью политик ветвей.
Да
Build.Repository.Clean Значение, выбранное для очистки в параметрах исходного репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.LocalPath Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Важно отметить: если вы извлекаете только один репозиторий Git, этот путь будет точным путем к коду.

При извлечении нескольких репозиториев поведение выглядит следующим образом (и может отличаться от значения переменной Build.SourcesDirectory):
  • Если для самостоятельного (первичного) репозитория нет пользовательского пути извлечения, либо путь к извлечению является путь $(Pipeline.Workspace)/s/&lt;RepoName&gt; по умолчанию для самостоятельного репозитория, значение этой переменной будет возвращаться к значению по умолчанию.$(Pipeline.Workspace)/s
  • Если для самостоятельного (первичного) репозитория установлен пользовательский путь проверки (и это не его путь по умолчанию с несколькими заказами), эта переменная будет содержать точный путь к самостоятельному репозиторию.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.ID Уникальный идентификатор репозитория.

Это не изменится, даже если имя репозитория выполняется.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Name Имя триггерного репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Provider Тип триггерного репозитория.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Tfvc.Workspace Определяется, система управления версиями Team Foundation ли репозиторий. Имя рабочей области TFVC, используемой агентом сборки.

Например, если агент.BuildDirectory и c:\agent_work\12 Agent.Id есть8, имя рабочей области может быть следующим: ws_12_8

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Uri URL-адрес для триггерного репозитория. Например:
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.RequestedFor См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Да
Build.RequestedForEmail См. статью "Как заданы переменные идентификации?". Да
Build.RequestedForId См. статью "Как заданы переменные идентификации?". Да
Build.SourceBranch Ветвь триггерного репозитория сборка была помещена в очередь. Некоторые примеры:
  • Ветвь репозитория Git: refs/heads/main
  • Запрос на вытягивание репозитория Git: refs/pull/1/merge
  • Ветвь репозитория TFVC: $/teamproject/main
  • Вход в репозиторий TFVC: Gated_2016-06-06_05.20.51.4369;username@live.com
  • Сборка набора полок репозитория TFVC: myshelveset;username@live.com
  • При активации конвейера тегом: refs/tags/your-tag-name
При использовании этой переменной в формате номера сборки символы косой черты (/) заменяются символами _подчеркивания.

Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Да
Build.SourceBranchName Имя ветви в триггерном репозитории сборки было в очереди.
  • Ветвь репозитория Git, запрос на вытягивание или тег: последний сегмент пути в ссылке. Например, в refs/heads/main этом значении есть main. В refs/heads/feature/tools этом значении имеется toolsзначение . В refs/tags/your-tag-name этом значении имеется your-tag-nameзначение .
  • Ветвь репозитория TFVC: последний сегмент пути к корневому серверу рабочей области. Например, в $/teamproject/main этом значении есть main.
  • Репозиторий TFVC, включаемые в систему или сборка набора полок, — это имя набора полок. Например, Gated_2016-06-06_05.20.51.4369;username@live.com или myshelveset;username@live.com.
Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Да
Build.SourcesDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы.

Важно отметить: если вы извлекаете только один репозиторий Git, этот путь является точным путем к коду. Если вы извлекаете несколько репозиториев, оно возвращается к значению по умолчанию, то $(Pipeline.Workspace)/sесть, даже если локальный (первичный) репозиторий извлекается в пользовательский путь, отличный от его пути $(Pipeline.Workspace)/s/<RepoName> по умолчанию для нескольких проверок (в этом отношении переменная отличается от поведения переменной Build.Repository.LocalPath).

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.SourceVersion Последнее изменение элемента управления версиями триггерного репозитория, включенного в эту сборку.
  • Git: идентификатор фиксации.
  • TFVC: набор изменений.
Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
Build.SourceVersionMessage Комментарий фиксации или набора изменений для триггерного репозитория. Мы усечены сообщение на первую строку или 200 символов, в зависимости от того, что меньше.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.

Кроме того, эта переменная доступна только на уровне шага и недоступна на уровне задания или этапа (т. е. сообщение не извлекается до начала задания и извлечения кода).

Примечание. Эта переменная доступна в TFS 2015.4.

Примечание. Переменная Build.SourceVersionMessage не работает с классическими конвейерами сборки в репозиториях Bitbucket при включении пакетной службы при включении сборки.
No
Build.StagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.Repository.Git.SubmoduleCheckout Значение, выбранное для вложенных модулей checkout, на вкладке репозитория. При извлечении нескольких репозиториев это значение отслеживает параметр триггера репозитория.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.SourceTfvcShelveset Определяется, система управления версиями Team Foundation ли репозиторий.

Если вы используете воротную сборку или сборку с набором полок, для этого задано имя набора полок, который вы создаете.

Примечание. Эта переменная дает недопустимое значение для использования сборки в формате номера сборки.
No
Build.TriggeredBy.BuildId Если сборка была активирована другой сборкой, эта переменная имеет значение BuildID триггера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.TriggeredBy.DefinitionId Если сборка была активирована другой сборкой, эта переменная имеет значение DefinitionID триггера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.TriggeredBy.DefinitionName Если сборка была активирована другой сборкой, эта переменная имеет имя запускающего конвейера сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.TriggeredBy.BuildNumber Если сборка была активирована другой сборкой, эта переменная имеет значение числа триггерной сборки. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Build.TriggeredBy.ProjectID Если сборка была активирована другой сборкой, эта переменная имеет идентификатор проекта, содержащего триггерную сборку. В классических конвейерах эта переменная активируется триггером завершения сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No
Common.TestResultsDirectory Локальный путь к агенту, в котором создаются результаты теста. Например: c:\agent_work\1\TestResults.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No

Переменные конвейера (DevOps Server 2020)

«Переменная» Description
Pipeline.Workspace Каталог рабочей области для определенного конвейера. Эта переменная имеет то же значение, что Agent.BuildDirectoryи . Например, /home/vsts/work/1.

Переменные задания развертывания (DevOps Server 2020)

Эти переменные относятся к определенному заданию развертывания и будут разрешены только во время выполнения задания.

«Переменная» Description
Environment.Name Имя среды, целевой в задании развертывания, для выполнения шагов развертывания и записи журнала развертывания. Например, smarthotel-dev.
Environment.Id Идентификатор среды, целевой в задании развертывания. Например, 10.
Environment.ResourceName Имя конкретного ресурса в среде, целевой в задании развертывания, для выполнения шагов развертывания и записи журнала развертывания. Например, это пространство имен Kubernetes, bookings которое было добавлено в качестве ресурса в среду smarthotel-dev.
Environment.ResourceId Идентификатор конкретного ресурса в среде, целевой в задании развертывания для выполнения шагов развертывания. Например, 4.

Системные переменные (DevOps Server 2020)

При использовании переменной в шаблоне, который не помечен как доступный в шаблонах, переменная не будет отображаться. Переменная не будет отображаться, так как его значение недоступно в области шаблона.

«Переменная» Description Доступно в шаблонах?
System.AccessToken Используйте маркер OAuth для доступа к REST API.

Используйте System.AccessToken из скриптов YAML.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
System.CollectionId GUID коллекции TFS или организации Azure DevOps Да
System.CollectionUri Строковый универсальный код ресурса (URI) коллекции Team Foundation Server. Да
System.DefaultWorkingDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
No
System.DefinitionId Идентификатор конвейера сборки. Да
System.HostType Задайте значение build , если конвейер является сборкой. В выпуске значения предназначены deployment для задания группы развертывания, gates во время оценки шлюзов и release для других заданий (агентов и агентов без агента). Да
System.JobAttempt Установите значение 1 при первой попытке этого задания и увеличивается каждый раз при повторном выполнении задания. No
System.JobDisplayName Имя, доступное для чтения человеком, заданное заданию. No
System.JobId Уникальный идентификатор для одной попытки одного задания. Значение уникально для текущего конвейера. No
System.JobName Имя задания, обычно используемое для выражения зависимостей и доступа к выходным переменным. No
System.PhaseAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении задания.

Примечание. "Этап" является в основном избыточной концепцией, которая представляет время разработки для задания (в то время как задание было версией среды выполнения этапа). В основном мы удалили концепцию "этап" из Azure Pipelines. Матрица и многоконфигурные задания являются единственным местом, где "этап" по-прежнему отличается от "job". Один этап может создать экземпляры нескольких заданий, которые отличаются только в их входных данных.
No
System.PhaseDisplayName Читаемое человеком имя, заданное этапу. No
System.PhaseName Строковый идентификатор задания, обычно используемый для выражения зависимостей и доступа к выходным переменным. No
System.StageAttempt Установите значение 1 при первой попытке этого этапа и увеличивается каждый раз при повторном выполнении задания. No
System.StageDisplayName Читаемое человеком имя, заданное сцене. No
System.StageName Строковый идентификатор этапа, обычно используемый для выражения зависимостей и доступа к выходным переменным. Да
System.PullRequest.IsFork Если запрос на вытягивание выполняется из вилки репозитория, эта переменная имеет значение True. В противном случае для него задано значение False. Да
System.PullRequest.PullRequestId Идентификатор запроса на вытягивание, вызвавшего эту сборку. Например: 17. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). No
System.PullRequest.PullRequestNumber Количество запроса на вытягивание, вызвавшего эту сборку. Эта переменная заполняется для запросов на вытягивание из GitHub с другим идентификатором запроса на вытягивание и номером запроса на вытягивание. Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.PullRequest.targetBranchName Имя целевой ветви для запроса на вытягивание. Эта переменная может использоваться в конвейере для условного выполнения задач или шагов на основе целевой ветви запроса на вытягивание. Например, может потребоваться активировать другой набор тестов или средств анализа кода в зависимости от ветви, в которой изменения объединяются. No
System.PullRequest.SourceBranch Ветвь, которая проверяется в запросе на вытягивание. Например: refs/heads/users/raisa/new-feature. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.PullRequest.SourceCommitId Фиксация, которая проверяется в запросе на вытягивание. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви). Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви.
System.PullRequest.SourceRepositoryURI URL-адрес репозитория, содержащего запрос на вытягивание. Например: https://dev.azure.com/ouraccount/_git/OurProject. No
System.PullRequest.TargetBranch Ветвь, которая является целью запроса на вытягивание. Например, refs/heads/main если репозиторий находится в Azure Repos и main когда репозиторий находится в GitHub. Эта переменная инициализируется только в том случае, если сборка запущена из-за Git PR, затронутой политикой ветви. Эта переменная доступна только в конвейере YAML, если на pr влияет политика ветви. No
System.TeamFoundationCollectionUri Универсальный код ресурса (URI) коллекции team foundation. Например: https://dev.azure.com/fabrikamfiber/.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
Да
System.TeamProject Имя проекта, содержащего эту сборку. Да
System.TeamProjectId Идентификатор проекта, к которому принадлежит эта сборка. Да
TF_BUILD True Установите значение, если скрипт выполняется задачей сборки.

Эта переменная является областью действия агента и может использоваться в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не в составе номера сборки или в качестве тега элемента управления версиями.
No

Переменные агента (DevOps Server 2019)

Примечание.

Переменные агента можно использовать в качестве переменных среды в скриптах и в качестве параметров в задачах сборки. Их нельзя использовать для настройки номера сборки или применения метки или тега элемента управления версиями.

«Переменная» Description
Agent.BuildDirectory Локальный путь агента, в котором создаются все папки для заданного конвейера сборки. Например: c:\agent_work\1.
Agent.HomeDirectory Каталог, в который устанавливается агент. Это содержит программное обеспечение агента. Например: c:\agent.
Agent.Id Идентификатор агента.
Agent.JobName Имя выполняемого задания. Обычно это будет "Задание" или "__default", но в сценариях с несколькими конфигурациями будет конфигурация.
Agent.JobStatus Состояние сборки.
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (частично успешно)
  • Skipped (последнее задание)
Переменная среды должна быть указана как AGENT_JOBSTATUS. Более ранние agent.jobstatus версии доступны для обратной совместимости.
Agent.MachineName Имя компьютера, на котором установлен агент.
Agent.Name Имя агента, зарегистрированного в пуле.

Если вы используете локальный агент, то это имя будет задано вами. См. агенты.
Agent.OS Операционная система узла агента. Допустимые значения:
  • Windows_NT
  • Darwin
  • Linux
Если вы работаете в контейнере, узел агента и контейнер могут работать в разных операционных системах.
Agent.OSArchitecture Архитектура процессора операционной системы узла агента. Допустимые значения:
  • X86
  • X64
  • ARM processor
Agent.TempDirectory Временная папка, которая очищается после каждого задания конвейера. Этот каталог используется задачами, такими как задача интерфейса командной строки .NET Core для хранения временных элементов, таких как результаты теста перед публикацией.
Agent.ToolsDirectory Каталог, используемый задачами, такими как установщик инструментов node и использование версии Python для переключения между несколькими версиями средства.

Эти задачи добавляют средства из этого каталога PATH , чтобы последующие шаги сборки могли использовать их.

Узнайте об управлении этим каталогом в локальном агенте.
Agent.WorkFolder Рабочий каталог для этого агента. Например: c:\agent_work.

Этот каталог не гарантируется для записи задачами конвейера (например, при сопоставлении с контейнером).

Переменные сборки (DevOps Server 2019)

«Переменная» Description
Build.ArtifactStagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.BuildId Идентификатор записи для завершенной сборки.
Build.BuildNumber Имя завершенной сборки. Можно указать формат номера сборки, который создает это значение в параметрах конвейера.

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

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.BuildUri Универсальный код ресурса (URI) для сборки. Например: vstfs:///Build/Build/1430.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.BinariesDirectory Локальный путь агента, который можно использовать в качестве выходной папки для скомпилированных двоичных файлов.

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

Например: c:\agent_work\1\b.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.DefinitionName Имя конвейера сборки.

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В этих случаях формат метки завершится ошибкой.
Build.DefinitionVersion Версия конвейера сборки.
Build.QueuedBy См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Build.QueuedById См. статью "Как заданы переменные идентификации?".
Build.Reason Событие, вызвавшее выполнение сборки.
  • Manual: пользователь вручную застроил сборку.
  • IndividualCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или проверкой TFVC.
  • BatchedCI: непрерывная интеграция (CI), активируется принудительной отправкой Git или возвратом TFVC, и выбраны изменения пакетной службы.
  • Schedule: запланированный триггер.
  • ValidateShelveset: пользователь вручную застроил сборку определенного набора полок TFVC.
  • CheckInShelveset: воротный триггер регистрации .
  • PullRequest: сборка была активирована политикой ветви Git, требующей сборки.
  • BuildCompletion: сборка была активирована другой сборкой.
См . инструкции по триггерам конвейера сборки, улучшению качества кода с помощью политик ветвей.
Build.Repository.Clean Значение, выбранное для очистки в параметрах исходного репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.Repository.LocalPath Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

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

Эта переменная синонимом Build.SourcesDirectory.
Build.Repository.Name Имя репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.Repository.Provider Выбранный тип репозитория.
Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.Repository.Tfvc.Workspace Определяется, система управления версиями Team Foundation ли репозиторий. Имя рабочей области TFVC, используемой агентом сборки.

Например, если агент.BuildDirectory и c:\agent_work\12 Agent.Id есть8, имя рабочей области может быть следующим: ws_12_8

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.Repository.Uri URL-адрес репозитория. Например:
Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.RequestedFor См. статью "Как заданы переменные идентификации?".

Примечание. Это значение может содержать пробелы или другие недопустимые символы меток. В таких случаях формат метки завершается ошибкой.
Build.RequestedForEmail См. статью "Как заданы переменные идентификации?".
Build.RequestedForId См. статью "Как заданы переменные идентификации?".
Build.SourceBranch Ветвь сборка была помещена в очередь. Некоторые примеры:
  • Ветвь репозитория Git: refs/heads/main
  • Запрос на вытягивание репозитория Git: refs/pull/1/merge
  • Ветвь репозитория TFVC: $/teamproject/main
  • Вход в репозиторий TFVC: Gated_2016-06-06_05.20.51.4369;username@live.com
  • Сборка набора полок репозитория TFVC: myshelveset;username@live.com
При использовании этой переменной в формате номера сборки символы косой черты (/) заменяются символами подчеркивания (_).

Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Build.SourceBranchName Имя ветви сборки было в очереди.
  • Ветвь репозитория Git, запрос на вытягивание или тег: последний сегмент пути в ссылке. Например, в refs/heads/main этом значении есть main. В refs/heads/feature/tools этом значении имеется toolsзначение . В refs/tags/your-tag-name этом значении имеется your-tag-nameзначение .
  • Ветвь репозитория TFVC: последний сегмент пути к корневому серверу рабочей области. Например, в $/teamproject/main этом значении.main
  • Репозиторий TFVC, включаемые в систему или сборка набора полок, — это имя набора полок. Например, Gated_2016-06-06_05.20.51.4369;username@live.com или myshelveset;username@live.com.
Примечание. В TFVC, если вы выполняете воротную сборку или вручную создаете набор полок, эту переменную нельзя использовать в формате номера сборки.
Build.SourcesDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s.

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

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

Эта переменная является синонимом Build.Repository.LocalPath.
Build.SourceVersion Последнее изменение элемента управления версиями, которое входит в эту сборку.
  • Git: идентификатор фиксации.
  • TFVC: набор изменений.
Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.SourceVersionMessage Комментарий фиксации или набора изменений. Мы усечены сообщение на первую строку или 200 символов, в зависимости от того, что меньше.

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

Примечание. Эта переменная доступна в TFS 2015.4.

Примечание. Переменная Build.SourceVersionMessage не работает с классическими конвейерами сборки в репозиториях Bitbucket при включении пакетной службы при включении сборки.
Build.StagingDirectory Локальный путь к агенту, в котором копируются артефакты перед отправкой в место назначения. Например: c:\agent_work\1\a.

Типичным способом использования этой папки является публикация артефактов сборки с помощью задач копирования файлов и задач публикации артефактов сборки .

Примечание. Build.ArtifactStagingDirectory и Build.StagingDirectory являются взаимозаменяемыми. Этот каталог очищается перед каждой новой сборкой, поэтому вам не нужно самостоятельно очистить его.

См . артефакты в Azure Pipelines.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.Repository.Git.SubmoduleCheckout Значение, выбранное для вложенных модулей checkout, на вкладке репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.SourceTfvcShelveset Определяется, система управления версиями Team Foundation ли репозиторий.

Если вы используете воротную сборку или сборку с набором полок, для этого задано имя набора полок, который вы создаете.

Примечание. Эта переменная дает недопустимое значение для использования сборки в формате номера сборки.
Build.TriggeredBy.BuildId Если сборка была активирована другой сборкой, эта переменная имеет значение BuildID триггера сборки.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.TriggeredBy.DefinitionId Если сборка была активирована другой сборкой, эта переменная имеет значение DefinitionID триггера сборки.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.TriggeredBy.DefinitionName Если сборка была активирована другой сборкой, эта переменная имеет имя запускающего конвейера сборки.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.TriggeredBy.BuildNumber Если сборка была активирована другой сборкой, эта переменная имеет значение числа триггерной сборки.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Build.TriggeredBy.ProjectID Если сборка была активирована другой сборкой, эта переменная имеет идентификатор проекта, содержащего триггерную сборку.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
Common.TestResultsDirectory Локальный путь к агенту, в котором создаются результаты теста. Например: c:\agent_work\1\TestResults.

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

Системные переменные (DevOps Server 2019)

Пример скрипта PowerShell: доступ к REST API

«Переменная» Description
System.AccessToken Используйте маркер OAuth для доступа к REST API.

Используйте System.AccessToken из скриптов YAML.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
System.CollectionId GUID коллекции TFS или организации Azure DevOps
System.DefaultWorkingDirectory Локальный путь к агенту, в котором скачиваются файлы исходного кода. Например: c:\agent_work\1\s

По умолчанию новые конвейеры сборки обновляют только измененные файлы. Вы можете изменить способ скачивания файлов на вкладке репозитория.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
System.DefinitionId Идентификатор конвейера сборки.
System.HostType Задайте значение build , если конвейер является сборкой. В выпуске значения относятся deployment к заданию группы развертывания и release заданию агента.
System.PullRequest.IsFork Если запрос на вытягивание выполняется из вилки репозитория, эта переменная имеет значение True. В противном случае для него задано значение False.
System.PullRequest.PullRequestId Идентификатор запроса на вытягивание, вызвавшего эту сборку. Например: 17. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви.)
System.PullRequest.PullRequestNumber Количество запроса на вытягивание, вызвавшего эту сборку. Эта переменная заполняется для запросов на вытягивание из GitHub, которые имеют другой идентификатор запроса на вытягивание и номер запроса на вытягивание.
System.PullRequest.SourceBranch Ветвь, которая проверяется в запросе на вытягивание. Например: refs/heads/users/raisa/new-feature. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви.)
System.PullRequest.SourceCommitId Фиксация, которая проверяется в запросе на вытягивание. (Эта переменная инициализирована только в том случае, если сборка запущена из-заGit PR, затронутый политикой ветви.)
System.PullRequest.SourceRepositoryURI URL-адрес репозитория, содержащего запрос на вытягивание. Например: https://dev.azure.com/ouraccount/_git/OurProject. (Эта переменная инициализирована только в том случае, если сборка запущена из-заAzure Repos Git PR, затронутый политикой ветви. Он не инициализирован для GitHub PRs.)
System.PullRequest.TargetBranch Ветвь, которая является целью запроса на вытягивание. Например: refs/heads/main. Эта переменная инициализируется только в том случае, если сборка запущена из-за Git PR, затронутой политикой ветви.
System.TeamFoundationCollectionUri Универсальный код ресурса (URI) коллекции team foundation. Например: https://dev.azure.com/fabrikamfiber/.

Эта переменная является областью действия агента. Его можно использовать в качестве переменной среды в скрипте и в качестве параметра в задаче сборки, но не как часть номера сборки или в качестве тега управления версиями.
System.TeamProject Имя проекта, содержащего эту сборку.
System.TeamProjectId Идентификатор проекта, к которому принадлежит эта сборка.
TF_BUILD True Установите значение, если скрипт выполняется задачей сборки.

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

Как задаются переменные идентификации?

Значение зависит от того, что вызвало сборку и зависит от репозиториев Azure Repos.

Если сборка активируется... Затем значения Build.QueuedBy и Build.QueuedById основаны на... Затем значения Build.RequestedFor и Build.RequestedForId основаны на...
В Git или триггерах непрерывной интеграции (CI) Например, системное удостоверение: [DefaultCollection]\Project Collection Service Accounts Пользователь, который вытолкнул или проверил изменения.
В Git или по сборке политики ветви. Например, системное удостоверение: [DefaultCollection]\Project Collection Service Accounts Пользователь, который проверил изменения.
В TFVC с помощью воротного триггера регистрации Пользователь, который проверил изменения. Пользователь, который проверил изменения.
В Git или TFVC с помощью запланированных триггеров Например, системное удостоверение: [DefaultCollection]\Project Collection Service Accounts Например, системное удостоверение: [DefaultCollection]\Project Collection Service Accounts
Так как вы нажали кнопку сборки очереди Вы Вы