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 или более поздней версии |
Категория задач | Служебная программа |