Partilhar via


GitHubRelease@1 - Tarefa de Versão v1 do GitHub

Utilize esta tarefa para criar, editar ou eliminar uma versão do GitHub.

Syntax

# 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 - Ligação do GitHub (OAuth ou PAT)
string. Obrigatório.

Especifica o nome da ligação do serviço GitHub a utilizar para ligar ao repositório do GitHub. A ligação tem de ser baseada no OAuth de um utilizador do GitHub ou num token de acesso pessoal do GitHub. Para obter mais informações sobre ligações de serviço, veja Gerir ligações de serviço.


repositoryName - Repositório
string. Obrigatório. Valor predefinido: $(Build.Repository.Name).

Especifica o nome do repositório do GitHub onde irá criar, editar ou eliminar a versão do GitHub.


action - Ação
string. Obrigatório. Valores permitidos: create, , editdelete. Valor predefinido: create.

Especifica o tipo de operação de lançamento a executar. Esta tarefa pode criar, editar ou eliminar uma versão do GitHub.


target - Destino
string. Necessário quando action = create || action = edit. Valor predefinido: $(Build.SourceVersion).

Especifica a SHA de consolidação que pretende utilizar para criar a versão do GitHub, por exemplo 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. Também pode utilizar uma variável, como $(myCommitSHA), neste campo.


tagSource - Origem da etiqueta
string. Necessário quando action = create. Valores permitidos: gitTag (etiqueta Git), userSpecifiedTag (Etiqueta especificada pelo utilizador). Valor predefinido: gitTag.

Especifica a etiqueta que pretende utilizar para a criação da versão. A gitTag opção utiliza automaticamente a etiqueta associada à consolidação do Git. Utilize a opção userSpecifiedTag para fornecer manualmente uma etiqueta.


tagPattern - Padrão de Etiqueta
string. Opcional. Utilize quando tagSource = gitTag.

Especifica o padrão de etiqueta git com regex, por exemplo release-v1.*. Será criada uma versão do GitHub apenas para consolidações que tenham etiquetas Git correspondentes.


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

Especifica a etiqueta que pretende utilizar quando cria, edita ou elimina uma versão. Também pode utilizar uma variável, como $(myTagName), neste campo.


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

Especifica o título da versão do GitHub. Se ficar vazia, a etiqueta será utilizada como o título da versão.


releaseNotesSource - Origem das notas de versão
string. Opcional. Utilize quando action = create || action = edit. Valores permitidos: filePath (Ficheiro de notas de versão), inline (Notas de versão inline). Valor predefinido: filePath.

Especifica a descrição da versão do GitHub. Utilize a opção filePath (Ficheiro de notas de versão) para utilizar conteúdos de ficheiros como notas de versão. Utilize a opção inline (Notas de versão inline) para introduzir manualmente notas de versão


releaseNotesFilePath - Caminho do ficheiro das notas de versão
string. Opcional. Utilize quando releaseNotesSource = filePath.

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


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

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


assets - Recursos
string. Opcional. Utilize quando action = create || action = edit. Valor predefinido: $(Build.ArtifactStagingDirectory)/*.

Especifica os ficheiros que pretende carregar como recursos da versão. Pode utilizar carateres universais para especificar vários ficheiros. Por exemplo, utilize $(Build.ArtifactStagingDirectory)/*.zip ou utilize $(System.DefaultWorkingDirectory)/*.zip para pipelines de versão.

Também pode especificar múltiplos padrões, um por linha. Por predefinição, todos os ficheiros no $(Build.ArtifactStagingDirectory) diretório serão carregados. Para obter mais informações sobre a lista de variáveis predefinidas que estão disponíveis, veja variáveis de compilação e variáveis de versão.


assetUploadMode - Modo de carregamento de recursos
string. Opcional. Utilize quando action = edit. Valores permitidos: delete (Eliminar recursos de exisitação), replace (Substituir recursos existentes). Valor predefinido: delete.

Especifica o modo de carregamento de recursos que pretende utilizar. Utilize a opção delete (Eliminar recursos existentes) para eliminar primeiro todos os recursos existentes na versão e, em seguida, carregar todos os recursos. Utilize a opção replace (Substituir recursos existentes) para substituir quaisquer recursos que tenham o mesmo nome.


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

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


isPreRelease - Pré-lançamento
boolean. Opcional. Utilize quando action = create || action = edit. Valor predefinido: false.

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


addChangeLog - Adicionar caixa de alterações
boolean. Opcional. Utilize quando action = create || action = edit. Valor predefinido: true.

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


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

Indica com que versão comparar para gerar o registo 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 etiqueta): compara a versão atual com a última versão não rascunho correspondente à etiqueta especificada. Também pode especificar um regex em vez de uma etiqueta exata.

changeLogCompareToReleaseTag - Etiqueta de Versão
string. Necessário quando changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Especifica o regex para a etiqueta de versão. A correspondência de versões desta etiqueta será utilizada como base para a computação do registo de alterações.


changeLogType - Tipo de registo de alterações
string. Necessário quando addChangeLog = true. Valores permitidos: commitBased (Baseado em consolidação) issueBased (Baseado em problemas). Valor predefinido: commitBased.

Especifica o tipo de registo de alterações. Um registo de alterações pode ser baseado em consolidação ou baseado em problemas. Um registo de alterações baseado em consolidação lista todas as consolidações incluídas numa versão. Um registo de alterações baseado em problemas lista todos os problemas ou pedidos Pull (PRs) incluídos na versão.


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

Categoriza as alterações com base na etiqueta associada ao problema ou pr. Para uma etiqueta, pode mencionar o nome a apresentar para a categoria e o estado do problema. Exemplos de etiquetas incluem: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". Nos casos em que uma alteração tem várias etiquetas, a primeira etiqueta especificada tem prioridade. Deixe este campo vazio para ver uma lista simples de problemas ou PRs.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Utilize esta tarefa no pipeline para criar, editar ou eliminar uma versão do GitHub.

Ligação do serviço GitHub

Esta tarefa requer uma ligação do serviço GitHub com permissão de Escrita para o repositório do GitHub. Pode criar uma ligação de serviço do GitHub no seu projeto do Azure Pipelines. Depois de criada, utilize o nome da ligação de serviço nas definições desta tarefa.

Exemplos

Criar uma versão do GitHub

O YAML seguinte cria uma versão do GitHub sempre que a tarefa é executada. O número de compilação é utilizado como a versão da etiqueta para a versão. Todos os ficheiros .exe e README.txt ficheiros na pasta $(Build.ArtifactStagingDirectory) são carregados como recursos. Por predefinição, a tarefa também gera um registo de alterações (uma lista de consolidações e problemas que fazem parte desta versão) e publica-o 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

Também pode controlar a criação da versão com base em etiquetas de repositório. O YAML seguinte cria uma versão do GitHub apenas quando a consolidação que aciona o pipeline tem uma etiqueta Git associada. A versão do GitHub é criada com a mesma versão de etiqueta que a etiqueta do Git associada.

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

Também pode querer utilizar a tarefa em conjunto com as condições da tarefa para obter um controlo ainda mais preciso sobre quando a tarefa é executada, restringindo assim a criação de versões. Por exemplo, no YAML seguinte, a tarefa é executada apenas quando o pipeline é acionado por uma etiqueta 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 seguinte atualiza o estado de uma versão do GitHub de "rascunho" para "publicado". A versão a editar é determinada pela etiqueta especificada.

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

Eliminar uma versão do GitHub

O YAML seguinte elimina uma versão do GitHub. A versão a eliminar é determinada pela etiqueta especificada.

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

Notas de versão inline

O YAML seguinte cria uma versão do GitHub e adiciona notas de versão inline.

- 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 Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agent, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de definição Qualquer
Versão do agente 2.0.0 ou superior
Categoria da tarefa Utilitário