GitHubRelease@1 - Attività GitHub Release v1

Usare questa attività per creare, modificare o eliminare una versione di GitHub.

Sintassi

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

Input

gitHubConnection - Connessione GitHub (OAuth o PAT)
string. Obbligatorio.

Specifica il nome della connessione al servizio GitHub da usare per connettersi al repository GitHub. La connessione deve essere basata su OAuth di un utente GitHub o un token di accesso personale GitHub. Per altre informazioni sulle connessioni al servizio, vedere Gestire le connessioni al servizio.


repositoryName - Repository
string. Obbligatorio. Valore predefinito: $(Build.Repository.Name).

Specifica il nome del repository GitHub in cui verrà creata, modificata o eliminata la versione di GitHub.


action - Azione
string. Obbligatorio. Valori consentiti: create, edit, delete. Valore predefinito: create.

Specifica il tipo di operazione di rilascio da eseguire. Questa attività può creare, modificare o eliminare una versione di GitHub.


target - Bersaglio
string. Obbligatorio quando action = create || action = edit. Valore predefinito: $(Build.SourceVersion).

Specifica l'sha di commit che si vuole usare per creare la versione di GitHub, ad esempio 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. È anche possibile usare una variabile, ad esempio $(myCommitSHA), in questo campo.


tagSource - Origine tag
string. Obbligatorio quando action = create. Valori consentiti: gitTag (tag Git), userSpecifiedTag (tag specificato dall'utente). Valore predefinito: gitTag.

Specifica il tag da usare per la creazione della versione. L'opzione gitTag usa automaticamente il tag associato al commit Git. Usare l'opzione userSpecifiedTag per specificare manualmente un tag.


tagPattern - Modello di tag
string. Facoltativa. Usare quando tagSource = gitTag.

Specifica il modello di tag Git usando regex, ad esempio release-v1.*. Verrà creata una versione di GitHub solo per i commit con tag Git corrispondente.


tag - Tag
string. Obbligatorio quando action = edit || action = delete || tagSource = userSpecifiedTag.

Specifica il tag da usare quando si crea, si modifica o si elimina una versione. È anche possibile usare una variabile, ad esempio $(myTagName), in questo campo.


title - Titolo della versione
string. Facoltativa. Usare quando action = create || action = edit.

Specifica il titolo della versione di GitHub. Se lasciato vuoto, il tag verrà usato come titolo di rilascio.


releaseNotesSource - Origine note sulla versione
string. Facoltativa. Usare quando action = create || action = edit. Valori consentiti: filePath (file note sulla versione), inline (note sulla versione inline). Valore predefinito: filePath.

Specifica la descrizione della versione di GitHub. Usare l'opzione filePath (file note sulla versione) per usare il contenuto del file come note sulla versione. Usare l'opzione inline (Note sulla versione inline) per immettere manualmente le note sulla versione


releaseNotesFilePath - Percorso del file note sulla versione
string. Facoltativa. Usare quando releaseNotesSource = filePath.

Specifica il file contenente le note sulla versione.


releaseNotesInline - Note sulla versione
string. Facoltativa. Usare quando releaseNotesSource = inline.

Specifica le note sulla versione. Markdown è supportato.


assets - Asset
string. Facoltativa. Usare quando action = create || action = edit. Valore predefinito: $(Build.ArtifactStagingDirectory)/*.

Specifica i file da caricare come asset della versione. È possibile usare caratteri jolly per specificare più file. Ad esempio, usare o usare $(Build.ArtifactStagingDirectory)/*.zip$(System.DefaultWorkingDirectory)/*.zip per le pipeline di versione.

È anche possibile specificare più modelli, uno per riga. Per impostazione predefinita, verranno caricati tutti i file nella $(Build.ArtifactStagingDirectory) directory. Per altre informazioni sull'elenco delle variabili predefinite disponibili, vedere Variabili di compilazione e variabili di versione.


assetUploadMode - Modalità di caricamento asset
string. Facoltativa. Usare quando action = edit. Valori consentiti: delete (Elimina asset esistenti), replace (Sostituisci asset esistenti). Valore predefinito: delete.

Specifica la modalità di caricamento degli asset da usare. Usare l'opzione delete (Elimina asset esistenti) per eliminare prima tutti gli asset esistenti nella versione e quindi caricare tutti gli asset. Usare l'opzione replace (Sostituisci asset esistenti) per sostituire tutti gli asset con lo stesso nome.


isDraft - Versione bozza
boolean. Facoltativa. Usare quando action = create || action = edit. Valore predefinito: false.

Indica se la versione deve essere salvata come bozza (non pubblicata). Se false, la versione verrà pubblicata.


isPreRelease - Versione non definitive
boolean. Facoltativa. Usare quando action = create || action = edit. Valore predefinito: false.

Indica se la versione deve essere contrassegnata come versione non definitive.


addChangeLog - Aggiungere il log delle modifiche
boolean. Facoltativa. Usare quando action = create || action = edit. Valore predefinito: true.

Specifica se si desidera includere un log delle modifiche. Se impostato su true, verrà generato un elenco di modifiche (commit e problemi) tra la versione corrente e l'ultima versione pubblicata.


changeLogCompareToRelease - Confronto con
string. Obbligatorio quando addChangeLog = true. Valori consentiti: lastFullRelease (Ultima versione completa), lastNonDraftRelease (Ultima versione non bozza), lastNonDraftReleaseByTag (Ultima versione non bozza per tag). Valore predefinito: lastFullRelease.

Indica la versione da confrontare con per generare il log delle modifiche:

  • lastFullRelease (Ultima versione completa): confronta la versione corrente con la versione non bozza più recente non contrassegnata come non definitive.
  • lastNonDraftRelease (Ultima versione non bozza): confronta la versione corrente con la versione non bozza più recente.
  • lastNonDraftReleaseByTag (Ultima versione non bozza per tag): confronta la versione corrente con l'ultima versione non bozza corrispondente al tag specificato. È anche possibile specificare un'espressione regolare anziché un tag esatto.

changeLogCompareToReleaseTag - Tag di rilascio
string. Obbligatorio quando changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Specifica l'espressione regolare per il tag di rilascio. La versione corrispondente a questo tag verrà usata come base per il calcolo del log delle modifiche.


changeLogType - Tipo di log delle modifiche
string. Obbligatorio quando addChangeLog = true. Valori consentiti: commitBased (basato su commit), issueBased (basato sul problema). Valore predefinito: commitBased.

Specifica il tipo di log delle modifiche. Un log delle modifiche può essere basato su commit o basato su problemi. Un log delle modifiche basato su commit elenca tutti i commit inclusi in una versione. Un log delle modifiche basato su problemi elenca tutti i problemi o le richieste pull incluse nella versione.


changeLogLabels - Categorie
string. Facoltativa. Usare quando changeLogType = issueBased && addChangeLog = true. Valore predefinito: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Classifica le modifiche in base all'etichetta associata al problema o alla richiesta pull. Per un'etichetta, è possibile menzionare il nome visualizzato per la categoria e lo stato del problema. Esempi di etichette includono: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". Nei casi in cui una modifica contiene più etichette, la prima etichetta specificata ha la priorità. Lasciare vuoto questo campo per visualizzare un elenco semplice di problemi o richieste pull.


Opzioni di controllo delle attività

Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

Usare questa attività nella pipeline per creare, modificare o eliminare una versione di GitHub.

Connessione al servizio GitHub

Questa attività richiede una connessione al servizio GitHub con l'autorizzazione di scrittura per il repository GitHub. È possibile creare una connessione al servizio GitHub nel progetto Azure Pipelines. Dopo la creazione, usare il nome della connessione al servizio nelle impostazioni di questa attività.

Esempio

Creare una versione di GitHub

Il codice YAML seguente crea una versione di GitHub ogni volta che viene eseguita l'attività. Il numero di build viene usato come versione del tag per la versione. Tutti i file .exe e i file README.txt nella cartella $(Build.ArtifactStagingDirectory) vengono caricati come asset. Per impostazione predefinita, l'attività genera anche un log delle modifiche (un elenco di commit e problemi che fanno parte di questa versione) e lo pubblica come note sulla versione.

- 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

È anche possibile controllare la creazione della versione in base ai tag del repository. Il codice YAML seguente crea una versione di GitHub solo quando al commit che attiva la pipeline è associato un tag Git. La versione di GitHub viene creata con la stessa versione del tag Git associato.

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

È anche possibile usare l'attività in combinazione con le condizioni dell'attività per ottenere un controllo ancora più corretto sulle esecuzioni dell'attività, limitando così la creazione delle versioni. Nell'YAML seguente, ad esempio, l'attività viene eseguita solo quando la pipeline viene attivata da un tag Git corrispondente al modello "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

Modificare una versione di GitHub

Il codice YAML seguente aggiorna lo stato di una versione di GitHub da 'draft' a 'published'. La versione da modificare è determinata dal tag specificato.

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

Eliminare una versione di GitHub

Il codice YAML seguente elimina una versione di GitHub. La versione da eliminare è determinata dal tag specificato.

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

Note sulla versione inline

Il codice YAML seguente crea una versione di GitHub e aggiunge note sulla versione 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>

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
Richieste nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 2.0.0 o versione successiva
Categoria attività Utilità