GitHubRelease@1 – Tarefa GitHub Release v1

Use essa tarefa para criar, editar ou excluir uma versão do GitHub.

Sintaxe

# 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" }].

Entradas

gitHubConnection - Conexão do GitHub (OAuth ou PAT)
string. Obrigatórios.

Especifica o nome da conexão de serviço do GitHub a ser usada para se conectar ao repositório GitHub. A conexão deve ser baseada no OAuth de um usuário do GitHub ou em um token de acesso pessoal do GitHub. Para obter mais informações sobre conexões de serviço, consulte Gerenciar conexões de serviço.


repositoryName - Repositório
string. Obrigatórios. Valor padrão: $(Build.Repository.Name).

Especifica o nome do repositório GitHub no qual você criará, editará ou excluirá a versão do GitHub.


action - Ação
string. Obrigatórios. Valores permitidos: create, edit, delete. Valor padrão: create.

Especifica o tipo de operação de lançamento a ser executada. Essa tarefa pode criar, editar ou excluir uma versão do GitHub.


target - Alvo
string. Obrigatório quando action = create || action = edit. Valor padrão: $(Build.SourceVersion).

Especifica o SHA de confirmação que você deseja usar para criar a versão do GitHub, por exemplo 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. Você também pode usar uma variável, como $(myCommitSHA), neste campo.


tagSource - Origem da marca
string. Obrigatório quando action = create. Valores permitidos: gitTag (marca Git), userSpecifiedTag (marca especificada pelo usuário). Valor padrão: gitTag.

Especifica a marca que você deseja usar para a criação da versão. A gitTag opção usa automaticamente a marca associada ao commit do Git. Use a opção userSpecifiedTag para fornecer manualmente uma marca.


tagPattern - Padrão de marca
string. Opcional. Use quando tagSource = gitTag.

Especifica o padrão de marca git usando regex, por exemplo release-v1.*. Uma versão do GitHub será criada somente para commits que tenham uma marca git correspondente.


tag - Tag
string. Obrigatório quando action = edit || action = delete || tagSource = userSpecifiedTag.

Especifica a marca que você deseja usar ao criar, editar ou excluir uma versão. Você também pode usar uma variável, como $(myTagName), neste campo.


title - Título da versão
string. Opcional. Use quando action = create || action = edit.

Especifica o título da versão do GitHub. Se deixado vazio, a marca será usada como o título da versão.


releaseNotesSource - Fonte das notas sobre a versão
string. Opcional. Use quando action = create || action = edit. Valores permitidos: filePath (arquivo de notas sobre a versão), inline (notas de versão embutidas). Valor padrão: filePath.

Especifica a descrição da versão do GitHub. Use a opção filePath (Arquivo de notas sobre a versão) para usar o conteúdo do arquivo como notas sobre a versão. Use a opção inline (notas de versão embutidas) para inserir manualmente as notas sobre a versão


releaseNotesFilePath - Caminho do arquivo de notas sobre a versão
string. Opcional. Use quando releaseNotesSource = filePath.

Especifica o arquivo que contém as notas sobre a versão.


releaseNotesInline - Notas sobre a versão
string. Opcional. Use quando releaseNotesSource = inline.

Especifica as notas sobre a versão. Há suporte para Markdown.


assets - Ativos
string. Opcional. Use quando action = create || action = edit. Valor padrão: $(Build.ArtifactStagingDirectory)/*.

Especifica os arquivos que você deseja carregar como ativos da versão. Você pode usar caracteres curinga para especificar vários arquivos. Por exemplo, use $(Build.ArtifactStagingDirectory)/*.zip ou use $(System.DefaultWorkingDirectory)/*.zip para pipelines de lançamento.

Você também pode especificar vários padrões, um por linha. Por padrão, todos os arquivos no diretório $(Build.ArtifactStagingDirectory) serão carregados. Para obter mais informações sobre a lista de variáveis predefinidas disponíveis, consulte variáveis de build e variáveis de versão.


assetUploadMode - Modo de carregamento de ativos
string. Opcional. Use quando action = edit. Valores permitidos: delete (Excluir ativos existentes) replace (Substituir ativos existentes). Valor padrão: delete.

Especifica o modo de carregamento de ativos que você deseja usar. Use a opção delete (Excluir ativos existentes) para primeiro excluir todos os ativos existentes na versão e carregar todos os ativos. Use a opção replace (Substituir ativos existentes) para substituir todos os ativos que tenham o mesmo nome.


isDraft - Versão de rascunho
boolean. Opcional. Use quando action = create || action = edit. Valor padrão: false.

Indica se a versão deve ser salva como um rascunho (não publicado). Se false, a versão será publicada.


isPreRelease - Pré-lançamento
boolean. Opcional. Use quando action = create || action = edit. Valor padrão: false.

Indica se a versão deve ser marcada como uma pré-lançamento.


addChangeLog - Adicionar log de alterações
boolean. Opcional. Use quando action = create || action = edit. Valor padrão: true.

Especifica se você deseja incluir um log de alterações. Se definido truecomo , uma lista de alterações (commits e problemas) entre a versão atual e a última versão publicada será gerada e acrescentada às notas de versão.


changeLogCompareToRelease - Comparar com
string. Obrigatório quando addChangeLog = true. Valores permitidos: lastFullRelease (Última versão completa), lastNonDraftRelease (Última versão não rascunho), lastNonDraftReleaseByTag (Última versão não rascunho por marca). Valor padrão: lastFullRelease.

Indica com qual versão comparar para gerar o log de alterações:

  • lastFullRelease (Última versão completa): compara a versão atual com a versão não rascunho mais recente que não está marcada como pré-lançamento.
  • lastNonDraftRelease (Última versão não rascunho): compara a versão atual com a versão não rascunho mais recente.
  • lastNonDraftReleaseByTag (Última versão não rascunho por marca): compara a versão atual com a última versão não rascunho que corresponde à marca especificada. Você também pode especificar um regex em vez de uma marca exata.

changeLogCompareToReleaseTag - Marca de versão
string. Obrigatório quando changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Especifica o regex para a marca de versão. A versão correspondente a essa marca será usada como base para computação de log de alterações.


changeLogType - Tipo de log de alterações
string. Obrigatório quando addChangeLog = true. Valores permitidos: commitBased (baseado em confirmação), issueBased (baseado em problema). Valor padrão: commitBased.

Especifica o tipo de log de alterações. Um log de alterações pode ser baseado em commit ou baseado em problemas. Um log de alterações baseado em commit lista todos os commits incluídos em uma versão. Um log de alterações baseado em problemas lista todos os problemas ou PRs (solicitações de pull) incluídos na versão.


changeLogLabels - Categorias
string. Opcional. Use quando changeLogType = issueBased && addChangeLog = true. Valor padrão: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Categoriza as alterações com base no rótulo associado ao problema ou pr. Para um rótulo, você pode menção o nome de exibição para a categoria e o estado do problema. Exemplos de rótulos incluem: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". Nos casos em que uma alteração tem vários rótulos, o primeiro rótulo especificado tem prioridade. Deixe esse campo vazio para ver uma lista simples de problemas ou PRs.


Opções de controle da tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Comentários

Use essa tarefa no pipeline para criar, editar ou descartar uma versão do GitHub.

Conexão de serviço do GitHub

Essa tarefa requer uma conexão de serviço do GitHub com a permissão Gravação para o repositório GitHub. Você pode criar uma conexão de serviço do GitHub em seu projeto do Azure Pipelines. Depois de criado, use o nome da conexão de serviço nas configurações dessa tarefa.

Exemplos

Criar uma versão do GitHub

O YAML a seguir cria uma versão do GitHub sempre que a tarefa é executada. O número de build é usado como a versão da marca para a versão. Todos os arquivos .exe e arquivos README.txt na pasta $(Build.ArtifactStagingDirectory) são carregados como ativos. Por padrão, a tarefa também gera um log de mudanças (uma lista de confirmações e problemas que fazem parte desta versão) e a publica como notas sobre a versão.

- 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

Você também pode controlar a criação da versão com base nas marcas de repositório. O YAML a seguir cria uma versão do GitHub somente quando a confirmação que dispara o pipeline tem uma marca Git associada. A versão do GitHub é criada com a mesma versão da marca que a marca do Git associada.

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

Talvez você também queira usar a tarefa em conjunto com condições de tarefa para obter um controle ainda mais rigoroso sobre quando a tarefa é executada, restringindo assim a criação de versões. Por exemplo, no YAML a seguir, a tarefa é executada somente quando o pipeline é disparado por uma marca do Git que corresponde ao padrão '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

Editar uma versão do GitHub

O YAML a seguir atualiza o status de uma versão do GitHub de 'rascunho' para 'publicado'. A versão a ser editada é determinada pela marca especificada.

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

Excluir uma versão do GitHub

O YAML a seguir exclui uma versão do GitHub. A versão a ser excluída é determinada pela marca especificada.

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

Notas sobre a versão embutidas

O YAML a seguir cria uma versão do GitHub e adiciona notas sobre a versão embutidas.

- 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>

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Executa em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 2.0.0 ou superior
Categoria da tarefa Utilitário