GitHubRelease@1 - GitHub 发布 v1 任务

使用此任务创建、编辑或删除 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 服务连接的名称。 连接必须基于 GitHub 用户的 OAuth 或 GitHub 个人访问令牌。 有关服务连接的详细信息,请参阅 管理服务连接


repositoryName - 存储库
string。 必填。 默认值:$(Build.Repository.Name)

指定要在其中创建、编辑或删除 GitHub 版本的 GitHub 存储库的名称。


action - 操作
string。 必填。 允许的值:createeditdelete。 默认值:create

指定要执行的发布作的类型。 此任务可以创建、编辑或删除 GitHub 版本。


target - 目标
stringaction = create || action = edit时是必需的。 默认值:$(Build.SourceVersion)

指定要用于创建 GitHub 版本的提交 SHA 或分支名称,例如 48b11d8d6e92a22e3e9563a3f643699c16fd6e27main。 还可以在此字段中使用变量(如 $(myCommitSHA))。


tagSource - 标记源
stringaction = create时是必需的。 允许的值:gitTag(Git 标记)、userSpecifiedTag(用户指定的标记)。 默认值:gitTag

指定要用于发布创建的标记。 gitTag 选项自动使用与 Git 提交关联的标记。 使用 userSpecifiedTag 选项手动提供标记。


tagPattern - 标记模式
string。 可选。 当 tagSource = gitTag时使用。

使用正则表达式指定 Git 标记模式,例如 release-v1.*。 仅针对具有匹配 Git 标记的提交创建 GitHub 版本。


tag - 标记
stringaction = 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 - 的比较
stringaddChangeLog = true时是必需的。 允许的值:lastFullRelease(上次完整发布)、lastNonDraftRelease(上次非草稿发布)、lastNonDraftReleaseByTag(按标记发布上次非草稿发布)。 默认值:lastFullRelease

指示要与哪个版本进行比较以生成更改日志:

  • lastFullRelease(上次完整版本):将当前版本与未标记为预发行的最新非草稿版本进行比较。
  • lastNonDraftRelease(上次非草稿版本):将当前版本与最新的非草稿版本进行比较。
  • lastNonDraftReleaseByTag(按标记排序的最后一个非草稿发布):将当前版本与与指定标记匹配的最后一个非草稿版本进行比较。 还可以指定正则表达式而不是确切标记。

changeLogCompareToReleaseTag - 发布标记
stringchangeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true时是必需的。

指定发布标记的正则表达式。 与此标记匹配的发布将用作变更日志计算的基础。


changeLogType - Changelog 类型
stringaddChangeLog = true时是必需的。 允许的值:commitBased(基于提交)、issueBased(基于问题)。 默认值:commitBased

指定更改日志类型。 更改日志可以是基于提交的,也可以是基于问题的。 基于提交的变更日志列出了发布中包含的所有提交。 基于问题的更改日志列出了发布中包含的所有问题或拉取请求(PR)。


changeLogLabels - 类别
string。 可选。 当 changeLogType = issueBased && addChangeLog = true时使用。 默认值:[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]

根据与问题或 PR 关联的标签对更改进行分类。 对于标签,可以提及类别和问题状态的显示名称。 标签示例包括:"[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]"。 如果更改具有多个标签,则第一个指定的标签优先。 将此字段留空,以查看问题或 PR 的平面列表。


任务控制选项

除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性

输出变量

没有。

注解

在管道中使用此任务创建、编辑或放弃 GitHub 版本

GitHub 服务连接

此任务需要具有对 GitHub 存储库的 写入 权限 GitHub 服务连接。 可以在 Azure Pipelines 项目中创建 GitHub 服务连接。 创建后,在此任务的设置中使用服务连接的名称。

例子

创建 GitHub 版本

以下 YAML 在每次运行任务时都会创建 GitHub 版本。 内部版本号用作版本的标记版本。 $(Build.ArtifactStagingDirectory)文件夹中的所有 .exe 文件和 README.txt 文件都作为资产上传。 默认情况下,该任务还会生成更改日志(此版本的提交和问题列表),并将其发布为发行说明。

- 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 仅在触发管道的提交具有与之关联的 Git 标记时创建 GitHub 版本。 GitHub 版本是使用与关联的 Git 标记相同的标记版本创建的。

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

你可能还希望将任务与任务条件结合使用,以便更好地控制任务何时运行,从而限制发布的创建。 例如,在以下 YAML 中,仅当管道由与模式“refs/tags/release-v*”匹配的 Git 标记触发时,任务才会运行。

- 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
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 2.0.0 或更高版本
任务类别 效用