Partager via


GitHubRelease@1 - Tâche GitHub Release v1

Utilisez cette tâche pour créer, modifier ou supprimer une version de GitHub.

Syntaxe

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

Entrées

gitHubConnection - Connexion GitHub (OAuth ou PAT)
string. Obligatoire.

Spécifie le nom de la connexion de service GitHub à utiliser pour se connecter au dépôt GitHub. La connexion doit être basée sur un jeton d’accès personnel ou OAuth d’un utilisateur GitHub. Pour plus d’informations sur les connexions de service, consultez Gérer les connexions de service.


repositoryName - Référentiel
string. Obligatoire. Valeur par défaut : $(Build.Repository.Name).

Spécifie le nom du dépôt GitHub dans lequel vous allez créer, modifier ou supprimer la version de GitHub.


action - Action
string. Obligatoire. Valeurs autorisées : create, edit, delete. Valeur par défaut : create.

Spécifie le type d’opération de mise en production à effectuer. Cette tâche peut créer, modifier ou supprimer une version de GitHub.


target - Cible
string. Nécessaire lorsque action = create || action = edit. Valeur par défaut : $(Build.SourceVersion).

Spécifie le SHA de validation que vous souhaitez utiliser pour créer la version GitHub, par exemple 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. Vous pouvez également utiliser une variable, comme $(myCommitSHA), dans ce champ.


tagSource - Source de l’étiquette
string. Nécessaire lorsque action = create. Valeurs autorisées : gitTag (balise Git), userSpecifiedTag (balise spécifiée par l’utilisateur). Valeur par défaut : gitTag.

Spécifie la balise que vous souhaitez utiliser pour la création de mise en production. L’option gitTag utilise automatiquement la balise associée au commit Git. Utilisez l’option userSpecifiedTag pour fournir manuellement une balise.


tagPattern - Modèle de balise
string. Optionnel. Utilisez quand tagSource = gitTag.

Spécifie le modèle de balise Git à l’aide de regex, par exemple release-v1.*. Une version GitHub est créée uniquement pour les commits qui ont une balise Git correspondante.


tag - Étiquette
string. Nécessaire lorsque action = edit || action = delete || tagSource = userSpecifiedTag.

Spécifie la balise que vous souhaitez utiliser lorsque vous créez, modifiez ou supprimez une mise en production. Vous pouvez également utiliser une variable, comme $(myTagName), dans ce champ.


title - Titre de la version
string. Optionnel. Utilisez quand action = create || action = edit.

Spécifie le titre de la version GitHub. Si elle est vide, la balise est utilisée comme titre de publication.


releaseNotesSource - Source des notes de publication
string. Optionnel. Utilisez quand action = create || action = edit. Valeurs autorisées : filePath (fichier notes de publication), inline (notes de publication inline). Valeur par défaut : filePath.

Spécifie la description de la version GitHub. Utilisez l’option filePath (Fichier notes de publication) pour utiliser le contenu du fichier comme notes de publication. Utiliser l’option inline (Notes de publication inline) pour entrer manuellement des notes de publication


releaseNotesFilePath - Chemin du fichier de notes de publication
string. Optionnel. Utilisez quand releaseNotesSource = filePath.

Spécifie le fichier qui contient les notes de publication.


releaseNotesInline - Notes de publication
string. Optionnel. Utilisez quand releaseNotesSource = inline.

Spécifie les notes de publication. Markdown est pris en charge.


assets - Actifs
string. Optionnel. Utilisez quand action = create || action = edit. Valeur par défaut : $(Build.ArtifactStagingDirectory)/*.

Spécifie les fichiers que vous souhaitez charger en tant que ressources de la version. Vous pouvez utiliser des caractères génériques pour spécifier plusieurs fichiers. Par exemple, utilisez $(Build.ArtifactStagingDirectory)/*.zip ou utilisez $(System.DefaultWorkingDirectory)/*.zip pour les pipelines de mise en production.

Vous pouvez également spécifier plusieurs modèles, un par ligne. Par défaut, tous les fichiers du $(Build.ArtifactStagingDirectory) répertoire sont chargés. Pour plus d’informations sur la liste des variables prédéfinies disponibles, consultez variables de génération et variables de mise en production.


assetUploadMode - Mode de chargement des ressources
string. Optionnel. Utilisez quand action = edit. Valeurs autorisées : delete (Supprimer les ressources existantes), replace (Remplacer les ressources existantes). Valeur par défaut : delete.

Spécifie le mode de chargement de la ressource que vous souhaitez utiliser. Utilisez l’option delete (Supprimer les ressources existantes) pour d’abord supprimer toutes les ressources existantes dans la version, puis charger toutes les ressources. Utilisez l’option replace (Remplacer les ressources existantes) pour remplacer toutes les ressources portant le même nom.


isDraft - Version préliminaire
boolean. Optionnel. Utilisez quand action = create || action = edit. Valeur par défaut : false.

Indique si la mise en production doit être enregistrée en tant que brouillon (non publié). Si falsela valeur est , la version sera publiée.


isPreRelease - Préversion
boolean. Optionnel. Utilisez quand action = create || action = edit. Valeur par défaut : false.

Indique si la mise en production doit être marquée comme une préversion.


addChangeLog - Ajouter un journal des modifications
boolean. Optionnel. Utilisez quand action = create || action = edit. Valeur par défaut : true.

Spécifie si vous souhaitez inclure un journal des modifications. Si la truevaleur est définie sur , une liste des modifications (validations et problèmes) entre la version actuelle et la dernière version publiée est générée et ajoutée aux notes de publication.


changeLogCompareToRelease - Comparer à
string. Nécessaire lorsque addChangeLog = true. Valeurs autorisées : lastFullRelease (Dernière version complète), lastNonDraftRelease (Dernière version non brouillon), lastNonDraftReleaseByTag (Dernière version non brouillon par balise). Valeur par défaut : lastFullRelease.

Indique la version à laquelle comparer pour générer le journal des modifications :

  • lastFullRelease (Dernière version complète) : compare la version actuelle à la version non-brouillon la plus récente qui n’est pas marquée comme préversion.
  • lastNonDraftRelease (Dernière version non brouillon) : compare la version actuelle à la version non brouillon la plus récente.
  • lastNonDraftReleaseByTag (Dernière version non brouillon par balise) : compare la version actuelle à la dernière version non brouillon correspondant à la balise spécifiée. Vous pouvez également spécifier une expression régulière au lieu d’une balise exacte.

changeLogCompareToReleaseTag - Balise de mise en production
string. Nécessaire lorsque changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Spécifie l’expression régulière pour la balise de mise en production. La mise en production correspondant à cette balise sera utilisée comme base pour le calcul du journal des modifications.


changeLogType - Type de journal des modifications
string. Nécessaire lorsque addChangeLog = true. Valeurs autorisées : commitBased (basé sur la validation), issueBased (basé sur le problème). Valeur par défaut : commitBased.

Spécifie le type de journal des modifications. Un journal des modifications peut être basé sur la validation ou sur un problème. Un journal des modifications basé sur la validation répertorie tous les commits inclus dans une version. Un journal des modifications basé sur les problèmes répertorie tous les problèmes ou demandes de tirage inclus dans la version.


changeLogLabels - Catégories
string. Optionnel. Utilisez quand changeLogType = issueBased && addChangeLog = true. Valeur par défaut : [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Classe les modifications en fonction de l’étiquette associée au problème ou à la demande de tirage. Pour une étiquette, vous pouvez mention le nom d’affichage de la catégorie et l’état du problème. Voici quelques exemples d’étiquettes : "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". Dans les cas où une modification comporte plusieurs étiquettes, la première étiquette spécifiée est prioritaire. Laissez ce champ vide pour afficher une liste plate de problèmes ou de demandes de tirage.


Options de contrôle de la tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Notes

Utilisez cette tâche dans votre pipeline pour créer, modifier ou ignorer une version de GitHub.

Connexion de service GitHub

Cette tâche nécessite une connexion de service GitHub avec l’autorisation d’écriture sur le dépôt GitHub. Vous pouvez créer une connexion de service GitHub dans votre projet Azure Pipelines. Une fois la connexion de service créée, utilisez son nom dans les paramètres de cette tâche.

Exemples

Créer une version GitHub

Le YAML suivant crée une version GitHub chaque fois que la tâche s’exécute. Le numéro de build est utilisé comme version de balise pour la version. Tous les fichiers .exe et README.txt dans le dossier $(Build.ArtifactStagingDirectory) sont chargés en tant que ressources. Par défaut, la tâche génère également un journal des modifications (une liste de validations et de problèmes qui font partie de cette version) et le publie en tant que notes de publication.

- 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

Vous pouvez également contrôler la création de la mise en production en fonction des balises de dépôt. Le yaML suivant crée une version GitHub uniquement lorsque le commit qui déclenche le pipeline a une balise Git associée. La version GitHub est créée avec la même version de balise que la balise Git associée.

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

Vous pouvez également utiliser la tâche conjointement avec les conditions de tâche pour obtenir un contrôle encore plus précis sur le moment où la tâche s’exécute, limitant ainsi la création de mises en production. Par exemple, dans le YAML suivant, la tâche s’exécute uniquement lorsque le pipeline est déclenché par une balise Git correspondant au modèle « 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

Modifier une version de GitHub

Le YAML suivant met à jour la status d’une version gitHub de « brouillon » à « publiée ». La mise en production à modifier est déterminée par la balise spécifiée.

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

Supprimer une version GitHub

Le YAML suivant supprime une version de GitHub. La mise en production à supprimer est déterminée par la balise spécifiée.

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

Notes de publication inline

Les yaML suivants créent une version GitHub et ajoutent des notes de publication 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>

Configuration requise

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Agent, DeploymentGroup
Demandes Aucune
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commande Quelconque
Variables paramétrables Quelconque
Version de l’agent 2.0.0 ou version ultérieure
Catégorie de la tâche Utilitaire