Partilhar via


GitHubRelease@1 - Tarefa GitHub Release v1

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

Insumos

gitHubConnection - conexão GitHub (OAuth ou PAT)
string. Obrigatório.

Especifica o nome da conexão de serviço do GitHub a ser usada para se conectar ao repositório do 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ório. Valor padrão: $(Build.Repository.Name).

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


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

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


target - Target
string. Necessário quando action = create || action = edit. Valor padrão: $(Build.SourceVersion).

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


tagSource - de origem da tag
string. Necessário quando action = create. Valores permitidos: gitTag (tag Git), userSpecifiedTag (tag especificada pelo usuário). Valor padrão: gitTag.

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


tagPattern - Padrão de tags
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 apenas para commits que tenham a tag Git correspondente.


tag - Tag
string. Necessário quando action = edit || action = delete || tagSource = userSpecifiedTag.

Especifica a tag 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 do lançamento
string. Opcional. Use quando action = create || action = edit.

Especifica o título da versão do GitHub. Se deixada vazia, a tag será usada como o título da versão.


releaseNotesSource - Fonte das notas de versão
string. Opcional. Use quando action = create || action = edit. Valores permitidos: filePath (arquivo de notas de 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 de versão) para usar o conteúdo do arquivo como notas de versão. Use a opção inline (Notas de versão embutidas) para inserir manualmente as notas de versão


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

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


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

Especifica as notas de versão. Markdown é suportado.


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 liberação.

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 criar variáveis e variáveis de liberaçã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, em seguida, carregar todos os ativos. Use a opção replace (Substituir ativos existentes) para substituir quaisquer ativos que tenham o mesmo nome.


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

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


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

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


addChangeLog - Adicionar do changelog
boolean. Opcional. Use quando action = create || action = edit. Valor padrão: true.

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


changeLogCompareToRelease - Compare com
string. Necessário quando addChangeLog = true. Valores permitidos: lastFullRelease (Última versão completa), lastNonDraftRelease (Última versão sem rascunho) lastNonDraftReleaseByTag (Última versão sem rascunho por marca). Valor padrão: lastFullRelease.

Indica com qual versão comparar para gerar o changelog:

  • 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 sem rascunho por tag): Compara a versão atual com a última versão não rascunho correspondente à tag especificada. Você também pode especificar um regex em vez de uma tag exata.

changeLogCompareToReleaseTag - Tag de lançamento
string. Necessário quando changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Especifica o regex para a tag release. A versão correspondente a essa tag será usada como base para o cálculo do changelog.


changeLogType - Tipo de Changelog
string. Necessá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 changelog pode ser baseado em confirmação ou em problemas. Um changelog baseado em commit lista todas as confirmações incluídas em uma versão. Um changelog baseado em problemas lista todos os problemas ou solicitações pull (PRs) 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 RP. Para um rótulo, você pode mencionar o nome para exibição da categoria e o estado de emissão. 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 este campo vazio para ver uma lista simples de problemas ou RPs.


Opções de controlo de tarefas

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

Variáveis de saída

Nenhum.

Observações

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

Conexão de serviço GitHub

Essa tarefa requer um de conexão de serviço GitHub com permissão Write para o repositório GitHub. Você pode criar uma conexão de serviço GitHub em seu projeto do Azure Pipelines. Uma vez criada, use o nome da conexão de serviço nas configurações desta 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 compilação é usado como a versão da tag para a versão. Todos os arquivos .exe e README.txt arquivos na pasta $(Build.ArtifactStagingDirectory) são carregados como ativos. Por padrão, a tarefa também gera um log de alterações (uma lista de confirmações e problemas que fazem parte desta versão) e o publica como notas de 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 tags do repositório. O YAML a seguir cria uma versão do GitHub somente quando a confirmação que aciona o pipeline tem uma tag Git associada a ele. A versão do GitHub é criada com a mesma versão de tag que a tag Git associada.

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

Você também pode querer usar a tarefa em conjunto com as condições da tarefa para obter um controle ainda mais fino 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 é acionado por uma tag Git correspondente 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 tag 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 liberação a ser excluída é determinada pela tag especificada.

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

Notas de versão em linha

O YAML a seguir cria uma versão do GitHub e adiciona notas de 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>

Requerimentos

Requisito Descrição
Tipos de pipeline YAML, Construção clássica, Versão clássica
Funciona em Agente, DeploymentGroup
Exigências Nenhum
Capacidades Esta tarefa não satisfaz quaisquer exigências 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 de tarefa Utilidade