GitHubRelease@1 — задача выпуска версии 1 на GitHub

Используйте эту задачу для создания, изменения или удаления выпуска GitHub.

Синтаксис

# GitHub Release v1
# Create, edit, or delete a GitHub release.
- task: GitHubRelease@1
  inputs:
    gitHubConnection: # string. Required. GitHub connection (OAuth or PAT). 
    repositoryName: '$(Build.Repository.Name)' # string. Required. Repository. Default: $(Build.Repository.Name).
    action: 'create' # 'create' | 'edit' | 'delete'. Required. Action. Default: create.
    #target: '$(Build.SourceVersion)' # string. Required when action = create || action = edit. Target. Default: $(Build.SourceVersion).
    tagSource: 'gitTag' # 'gitTag' | 'userSpecifiedTag'. Required when action = create. Tag source. Default: gitTag.
    #tagPattern: # string. Optional. Use when tagSource = gitTag. Tag Pattern. 
    #tag: # string. Required when action = edit || action = delete || tagSource = userSpecifiedTag. Tag. 
    #title: # string. Optional. Use when action = create || action = edit. Release title. 
    #releaseNotesSource: 'filePath' # 'filePath' | 'inline'. Optional. Use when action = create || action = edit. Release notes source. Default: filePath.
    #releaseNotesFilePath: # string. Optional. Use when releaseNotesSource = filePath. Release notes file path. 
    #releaseNotesInline: # string. Optional. Use when releaseNotesSource = inline. Release notes. 
    #assets: '$(Build.ArtifactStagingDirectory)/*' # string. Optional. Use when action = create || action = edit. Assets. Default: $(Build.ArtifactStagingDirectory)/*.
    #assetUploadMode: 'delete' # 'delete' | 'replace'. Optional. Use when action = edit. Asset upload mode. Default: delete.
    #isDraft: false # boolean. Optional. Use when action = create || action = edit. Draft release. Default: false.
    #isPreRelease: false # boolean. Optional. Use when action = create || action = edit. Pre-release. Default: false.
    #addChangeLog: true # boolean. Optional. Use when action = create || action = edit. Add changelog. Default: true.
  # Changelog configuration
    changeLogCompareToRelease: 'lastFullRelease' # 'lastFullRelease' | 'lastNonDraftRelease' | 'lastNonDraftReleaseByTag'. Required when addChangeLog = true. Compare to. Default: lastFullRelease.
    #changeLogCompareToReleaseTag: # string. Required when changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true. Release Tag. 
    changeLogType: 'commitBased' # 'commitBased' | 'issueBased'. Required when addChangeLog = true. Changelog type. Default: commitBased.
    #changeLogLabels: '[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]' # string. Optional. Use when changeLogType = issueBased && addChangeLog = true. Categories. Default: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Входные данные

gitHubConnection - Подключение GitHub (OAuth или PAT)
string. Обязательный.

Указывает имя подключения службы GitHub, используемого для подключения к репозиторию GitHub. Подключение должно основываться на OAuth пользователя GitHub или личном маркере доступа GitHub. Дополнительные сведения о подключениях к службам см. в разделе Управление подключениями к службам.


repositoryName - Репозитория
string. Обязательный. Значение по умолчанию: $(Build.Repository.Name).

Указывает имя репозитория GitHub, в котором будет создан, изменен или удален выпуск GitHub.


action - Действий
string. Обязательный. Допустимые значения: create, edit, delete. Значение по умолчанию: create.

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


target - Целевой
string. Требуется, если action = create || action = edit. Значение по умолчанию: $(Build.SourceVersion).

Указывает SHA фиксации, который вы хотите использовать для создания выпуска GitHub, например 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. В этом поле также можно использовать переменную , например $(myCommitSHA).


tagSource - Источник тегов
string. Требуется, если action = create. Допустимые значения: gitTag (тег Git), userSpecifiedTag (тег, указанный пользователем). Значение по умолчанию: gitTag.

Указывает тег, который вы хотите использовать для создания выпуска. Параметр gitTag автоматически использует тег, связанный с фиксацией Git. userSpecifiedTag Используйте параметр , чтобы вручную указать тег.


tagPattern - Шаблон тега
string. Необязательный элемент. Используйте при tagSource = gitTag.

Указывает шаблон тега Git с помощью регулярного выражения, например release-v1.*. Выпуск GitHub будет создан только для фиксаций с соответствующим тегом Git.


tag - Тег
string. Требуется, если action = edit || action = delete || tagSource = userSpecifiedTag.

Указывает тег, который вы хотите использовать при создании, изменении или удалении выпуска. В этом поле также можно использовать переменную , например $(myTagName).


title - Название выпуска
string. Необязательный элемент. Используйте при action = create || action = edit.

Указывает заголовок выпуска GitHub. Если оставить его пустым, тег будет использоваться в качестве заголовка выпуска.


releaseNotesSource - Источник заметок о выпуске
string. Необязательный элемент. Используйте при action = create || action = edit. Допустимые значения: filePath (файл заметок о выпуске), inline (встроенные заметки о выпуске). Значение по умолчанию: filePath.

Указывает описание выпуска GitHub. filePath Используйте параметр (файл заметок о выпуске), чтобы использовать содержимое файла в качестве заметок о выпуске. inline Используйте параметр (Встроенные заметки о выпуске), чтобы вручную ввести заметки о выпуске


releaseNotesFilePath - Путь к файлу заметок о выпуске
string. Необязательный элемент. Используйте при releaseNotesSource = filePath.

Указывает файл, содержащий заметки о выпуске.


releaseNotesInline - Заметки о выпуске
string. Необязательный элемент. Используйте при releaseNotesSource = inline.

Указывает заметки о выпуске. Поддерживается Markdown.


assets - Активов
string. Необязательный элемент. Используйте при action = create || action = edit. Значение по умолчанию: $(Build.ArtifactStagingDirectory)/*.

Указывает файлы, которые нужно отправить в качестве ресурсов выпуска. Для указания нескольких файлов можно использовать подстановочные знаки. Например, используйте $(Build.ArtifactStagingDirectory)/*.zip или для $(System.DefaultWorkingDirectory)/*.zip конвейеров выпуска.

Можно также указать несколько шаблонов, по одному на строку. По умолчанию будут отправлены $(Build.ArtifactStagingDirectory) все файлы в каталоге . Дополнительные сведения о списке доступных предварительно определенных переменных см. в разделе Переменные сборки и переменные выпуска.


assetUploadMode - Режим отправки ресурсов
string. Необязательный элемент. Используйте при action = edit. Допустимые значения: delete (Удалить существующие ресурсы), replace (Замените существующие ресурсы). Значение по умолчанию: delete.

Указывает режим отправки ресурсов, который вы хотите использовать. delete Используйте параметр (Удалить существующие ресурсы), чтобы сначала удалить все существующие ресурсы в выпуске, а затем отправить все ресурсы. replace Используйте параметр (Заменить существующие ресурсы), чтобы заменить все ресурсы с одинаковым именем.


isDraft - Выпуск черновика
boolean. Необязательный элемент. Используйте при action = create || action = edit. Значение по умолчанию: false.

Указывает, следует ли сохранить выпуск в виде черновика (неопубликованного). Если falseзначение , выпуск будет опубликован.


isPreRelease - Предварительная версия
boolean. Необязательный элемент. Используйте при action = create || action = edit. Значение по умолчанию: false.

Указывает, следует ли помечать выпуск как предварительный.


addChangeLog - Добавление журнала изменений
boolean. Необязательный элемент. Используйте при action = create || action = edit. Значение по умолчанию: true.

Указывает, требуется ли включить журнал изменений. Если задано значение true, будет создан список изменений (фиксаций и проблем) между текущим и последним опубликованным выпуском, который будет добавлен в заметки о выпуске.


changeLogCompareToRelease - Сравните с
string. Требуется, если addChangeLog = true. Допустимые значения: lastFullRelease (Последний полный выпуск), lastNonDraftRelease (Последний выпуск, отличный от черновика), lastNonDraftReleaseByTag (Последний выпуск без черновика по тегу). Значение по умолчанию: lastFullRelease.

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

  • lastFullRelease (Последний полный выпуск): сравнивает текущий выпуск с самым последним выпуском, который не помечен как предварительный.
  • lastNonDraftRelease (Последний выпуск, отличный от черновика). Сравнивает текущий выпуск с последним выпуском без черновика.
  • lastNonDraftReleaseByTag (Последний выпуск, отличный от черновика по тегу): сравнивает текущий выпуск с последним выпуском без черновика, соответствующим указанному тегу. Вы также можете указать регулярное выражение вместо точного тега.

changeLogCompareToReleaseTag - Тег выпуска
string. Требуется, если changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

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


changeLogType - Тип журнала изменений
string. Требуется, если addChangeLog = true. Допустимые значения: commitBased (на основе фиксации), issueBased (на основе проблемы). Значение по умолчанию: commitBased.

Указывает тип журнала изменений. Журнал изменений может быть основан на фиксациях или проблемах. В журнале изменений на основе фиксаций перечислены все фиксации, включенные в выпуск. В журнале изменений на основе проблем перечислены все проблемы или запросы на вытягивание (PR), включенные в выпуск.


changeLogLabels - Категории
string. Необязательный элемент. Используйте при changeLogType = issueBased && addChangeLog = true. Значение по умолчанию: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Классифицирует изменения на основе метки, связанной с проблемой или запросом на вытягивание. Для метки можно упоминание отображаемое имя категории и состояние проблемы. Примеры меток: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". В случаях, когда изменение содержит несколько меток, приоритет имеет первая указанная метка. Оставьте это поле пустым, чтобы просмотреть плоский список проблем или запросы на запросы.


Параметры управления задачами

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

Выходные переменные

Нет.

Remarks

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

Подключение к службе GitHub

Для выполнения этой задачи требуется подключение службы GitHub с разрешением на запись в репозиторий GitHub. Вы можете создать подключение к службе GitHub в проекте Azure Pipelines. После создания используйте имя подключения службы в параметрах этой задачи.

Примеры

Создание выпуска GitHub

Следующий YAML создает выпуск GitHub при каждом запуске задачи. Номер сборки используется в качестве версии тега для выпуска. Все .exe файлы и README.txt файлы в папке $(Build.ArtifactStagingDirectory) передаются как ресурсы. По умолчанию задача также создает журнал изменений (список фиксаций и проблем, которые являются частью этого выпуска) и публикует его в виде заметок о выпуске.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    tagSource: manual
    tag: $(Build.BuildNumber)      
    assets: |
      $(Build.ArtifactStagingDirectory)/*.exe
      $(Build.ArtifactStagingDirectory)/README.txt

Вы также можете управлять созданием выпуска на основе тегов репозитория. Следующий YAML создает выпуск GitHub только в том случае, если фиксация, активировающая конвейер, имеет связанный с ним тег Git. Выпуск GitHub создается с той же версией тега, что и связанный тег Git.

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven           
    assets: $(Build.ArtifactStagingDirectory)/*.exe

Вы также можете использовать задачу в сочетании с условиями задачи, чтобы получить еще более точное управление временем выполнения задачи, тем самым ограничивая создание выпусков. Например, в следующем YAML задача выполняется только в том случае, если конвейер активируется тегом Git, соответствующим шаблону "refs/tags/release-v*".

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'   
  condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/release-v')   
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven           
    assets: $(Build.ArtifactStagingDirectory)/*.exe

Изменение выпуска GitHub

Следующий YAML обновляет состояние выпуска GitHub с "черновик" на "опубликовано". Редактируемый выпуск определяется указанным тегом .

- task: GithubRelease@1
  displayName: 'Edit GitHub Release'
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    action: edit
    tag: $(myDraftReleaseVersion)
    isDraft: false

Удаление выпуска GitHub

Следующий YAML удаляет выпуск GitHub. Удаляемый выпуск определяется указанным тегом.

- task: GithubRelease@1
  displayName: 'Delete GitHub Release'
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    action: delete
    tag: $(myDraftReleaseVersion)

Встроенные заметки о выпуске

Следующий YAML создает выпуск GitHub и добавляет встроенные заметки о выпуске.

- task: GitHubRelease@1
  inputs:
    gitHubConnection: <GITHUB_SERVICE_CONNECTION>
    repositoryName: '$(Build.Repository.Name)'
    action: 'create'
    target: '$(Build.SourceVersion)'
    tagSource: 'userSpecifiedTag'
    tag: <YOUR_TAG>
    title: <YOUR_TITLE>
    releaseNotesSource: 'inline'
    releaseNotesInline: <YOUR_RELEASE_NOTES>

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
Требования Нет
Capabilities Эта задача не удовлетворяет требованиям для последующих задач в задании.
Ограничения команд Любой
Устанавливаемые переменные Любой
Версия агента 2.0.0 или более поздней версии
Категория задач Служебная программа