Compartir vía


GitHubRelease@1: tarea versión 1 de GitHub

Use esta tarea para crear, editar o eliminar una versión de 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 - Conexión de GitHub (OAuth o PAT)
string. Obligatorio.

Especifica el nombre de la conexión de servicio de GitHub que se va a usar para conectarse al repositorio de GitHub. La conexión debe basarse en OAuth de un usuario de GitHub o en un token de acceso personal de GitHub. Para obtener más información sobre las conexiones de servicio, consulte Administración de conexiones de servicio.


repositoryName - Repositorio
string. Obligatorio. Valor predeterminado: $(Build.Repository.Name).

Especifica el nombre del repositorio de GitHub donde creará, editará o eliminará la versión de GitHub.


action - Acción
string. Obligatorio. Valores permitidos: create, edit y delete. Valor predeterminado: create.

Especifica el tipo de operación de versión que se va a realizar. Esta tarea puede crear, editar o eliminar una versión de GitHub.


target - Objetivo
string. Necesario cuando action = create || action = edit. Valor predeterminado: $(Build.SourceVersion).

Especifica el SHA de confirmación que desea usar para crear la versión de GitHub, por ejemplo 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. También puede usar una variable, como $(myCommitSHA), en este campo.


tagSource - Origen de etiquetas
string. Necesario cuando action = create. Valores permitidos: gitTag (etiqueta Git), userSpecifiedTag (Etiqueta especificada por el usuario). Valor predeterminado: gitTag.

Especifica la etiqueta que desea usar para la creación de versiones. La gitTag opción usa automáticamente la etiqueta asociada a la confirmación de Git. Use la userSpecifiedTag opción para proporcionar manualmente una etiqueta.


tagPattern - Patrón de etiqueta
string. Opcional. Use cuando tagSource = gitTag.

Especifica el patrón de etiqueta de Git mediante regex, por ejemplo release-v1.*. Solo se creará una versión de GitHub para confirmaciones que tengan etiqueta Git coincidente.


tag - Etiqueta
string. Necesario cuando action = edit || action = delete || tagSource = userSpecifiedTag.

Especifica la etiqueta que desea usar al crear, editar o eliminar una versión. También puede usar una variable, como $(myTagName), en este campo.


title - Título de la versión
string. Opcional. Use cuando action = create || action = edit.

Especifica el título de la versión de GitHub. Si se deja vacía, la etiqueta se usará como título de versión.


releaseNotesSource - Origen de notas de la versión
string. Opcional. Use cuando action = create || action = edit. Valores permitidos: filePath (archivo de notas de la versión), inline (notas de la versión insertadas). Valor predeterminado: filePath.

Especifica la descripción de la versión de GitHub. Use la filePath opción (archivo de notas de la versión) para usar el contenido del archivo como notas de la versión. Use la inline opción (Notas de la versión insertadas) para escribir manualmente las notas de la versión


releaseNotesFilePath - Ruta de acceso del archivo de notas de la versión
string. Opcional. Use cuando releaseNotesSource = filePath.

Especifica el archivo que contiene las notas de la versión.


releaseNotesInline - Notas
string. Opcional. Use cuando releaseNotesSource = inline.

Especifica las notas de la versión. Se admite Markdown.


assets - Activos
string. Opcional. Use cuando action = create || action = edit. Valor predeterminado: $(Build.ArtifactStagingDirectory)/*.

Especifica los archivos que desea cargar como recursos de la versión. Puede usar caracteres comodín para especificar varios archivos. Por ejemplo, use $(Build.ArtifactStagingDirectory)/*.zip o use $(System.DefaultWorkingDirectory)/*.zip para canalizaciones de versión.

También puede especificar varios patrones, uno por línea. De forma predeterminada, se cargarán todos los archivos del directorio $(Build.ArtifactStagingDirectory). Para obtener más información sobre la lista de variables predefinidas que están disponibles, vea Variables de compilación y variables de versión.


assetUploadMode - Modo de carga de recursos
string. Opcional. Use cuando action = edit. Valores permitidos: delete (eliminar recursos exisiting), replace (reemplazar los recursos existentes). Valor predeterminado: delete.

Especifica el modo de carga de recursos que desea usar. Use la delete opción (Eliminar recursos existentes) para eliminar primero todos los recursos existentes de la versión y, a continuación, cargar todos los recursos. Use la replace opción (Reemplazar recursos existentes) para reemplazar los recursos que tengan el mismo nombre.


isDraft - Versión de borrador
boolean. Opcional. Use cuando action = create || action = edit. Valor predeterminado: false.

Indica si la versión debe guardarse como borrador (sin publicar). Si es false, se publicará la versión.


isPreRelease - Versión preliminar
boolean. Opcional. Use cuando action = create || action = edit. Valor predeterminado: false.

Indica si la versión debe marcarse como una versión preliminar.


addChangeLog - Agregar registro de cambios
boolean. Opcional. Use cuando action = create || action = edit. Valor predeterminado: true.

Especifica si desea incluir un registro de cambios. Si se establece en true, se generará una lista de cambios (confirmaciones y problemas) entre la versión actual y la última versión publicada y se anexará a las notas de la versión.


changeLogCompareToRelease - Comparar con
string. Necesario cuando addChangeLog = true. Valores permitidos: lastFullRelease (Última versión completa), lastNonDraftRelease (Última versión no borrador), lastNonDraftReleaseByTag (Última versión sin borrador por etiqueta). Valor predeterminado: lastFullRelease.

Indica la versión con la que se va a comparar para generar el registro de cambios:

  • lastFullRelease (Última versión completa): compara la versión actual con la versión no borrador más reciente que no está marcada como versión preliminar.
  • lastNonDraftRelease (Última versión que no es de borrador): compara la versión actual con la versión no borrador más reciente.
  • lastNonDraftReleaseByTag (Última versión sin borrador por etiqueta): compara la versión actual con la última versión que no es de borrador que coincide con la etiqueta especificada. También puede especificar una expresión regular en lugar de una etiqueta exacta.

changeLogCompareToReleaseTag - Etiqueta de versión
string. Necesario cuando changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Especifica la expresión regular para la etiqueta de versión. La versión que coincida con esta etiqueta se usará como base para el cálculo del registro de cambios.


changeLogType - Tipo de registro de cambios
string. Necesario cuando addChangeLog = true. Valores permitidos: commitBased (basado en confirmación), issueBased (basado en el problema). Valor predeterminado: commitBased.

Especifica el tipo de registro de cambios. Un registro de cambios puede basarse en confirmaciones o en problemas. Un registro de cambios basado en confirmaciones enumera todas las confirmaciones incluidas en una versión. Un registro de cambios basado en problemas enumera todos los problemas o solicitudes de incorporación de cambios (PR) incluidos en la versión.


changeLogLabels - Categorías
string. Opcional. Use cuando changeLogType = issueBased && addChangeLog = true. Valor predeterminado: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Clasifica los cambios en función de la etiqueta asociada al problema o a la solicitud de incorporación de cambios. Para una etiqueta, puede mencionar el nombre para mostrar de la categoría y el estado del problema. Algunos ejemplos de etiquetas son: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". En los casos en los que un cambio tiene varias etiquetas en ella, la primera etiqueta especificada tiene prioridad. Deje este campo vacío para ver una lista plana de problemas o solicitudes de incorporación de cambios.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Comentarios

Use esta tarea en la canalización para crear, editar o descartar una versión de GitHub.

Conexión de servicio de GitHub

Esta tarea requiere una conexión de servicio de GitHub con permiso de escritura en el repositorio de GitHub. Puede crear una conexión de servicio de GitHub en el proyecto de Azure Pipelines. Una vez creada, use el nombre de la conexión de servicio en la configuración de esta tarea.

Ejemplos

Crear una versión de GitHub

El siguiente YAML crea una versión de GitHub cada vez que se ejecuta la tarea. El número de compilación se usa como versión de etiqueta para la versión. Todos los archivos .exe y README.txt de la carpeta $(Build.ArtifactStagingDirectory) se cargan como recursos. De forma predeterminada, la tarea también genera un registro de cambios (una lista de confirmaciones y problemas que forman parte de esta versión) y lo publica como notas de la versión.

- 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

También puede controlar la creación de la versión en función de las etiquetas del repositorio. El siguiente YAML crea una versión de GitHub solo cuando la confirmación que desencadena la canalización tiene una etiqueta Git asociada. La versión de GitHub se crea con la misma versión de etiqueta que la etiqueta Git asociada.

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

También puede usar la tarea junto con las condiciones de la tarea para obtener un control aún más preciso sobre cuándo se ejecuta la tarea, lo que restringe la creación de versiones. Por ejemplo, en el siguiente YAML, la tarea solo se ejecuta cuando una etiqueta Git desencadena la canalización que coincide con el patrón "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

Edición de una versión de GitHub

El siguiente YAML actualiza el estado de una versión de GitHub de "boarrador" a "publicado". La versión que se va a editar viene determinada por la etiqueta especificada.

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

Eliminación de una versión de GitHub

El siguiente YAML elimina una versión de GitHub. La versión que se va a eliminar viene determinada por la etiqueta especificada.

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

Notas de la versión insertada

El siguiente YAML crea una versión de GitHub y agrega notas de la versión insertadas.

- 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 Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 2.0.0 o superior
Categoría de la tarea: Utilidad