Delen via


GitHubRelease@1 - GitHub Release v1-taak

Gebruik deze taak om een GitHub-release te maken, bewerken of verwijderen.

Syntaxis

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

Invoer

gitHubConnection - GitHub-verbinding (OAuth of PAT)
string. Verplicht.

Hiermee geeft u de naam op van de GitHub-serviceverbinding die moet worden gebruikt om verbinding te maken met de GitHub-opslagplaats. De verbinding moet zijn gebaseerd op de OAuth van een GitHub-gebruiker of een persoonlijk GitHub-toegangstoken. Zie Serviceverbindingen beherenvoor meer informatie over serviceverbindingen.


repositoryName - opslagplaats
string. Verplicht. Standaardwaarde: $(Build.Repository.Name).

Hiermee geeft u de naam op van de GitHub-opslagplaats waar u de GitHub-release gaat maken, bewerken of verwijderen.


action - actie-
string. Verplicht. Toegestane waarden: create, edit, delete. Standaardwaarde: create.

Hiermee geeft u het type releasebewerking dat moet worden uitgevoerd. Met deze taak kunt u een GitHub-release maken, bewerken of verwijderen.


target - doel-
string. Vereist wanneer action = create || action = edit. Standaardwaarde: $(Build.SourceVersion).

Hiermee geeft u de doorvoer SHA of vertakkingsnaam die u wilt gebruiken om de GitHub-release te maken, bijvoorbeeld 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 of main. U kunt in dit veld ook een variabele gebruiken, zoals $(myCommitSHA).


tagSource - labelbron
string. Vereist wanneer action = create. Toegestane waarden: gitTag (Git-tag), userSpecifiedTag (door gebruiker opgegeven tag). Standaardwaarde: gitTag.

Hiermee geeft u de tag op die u wilt gebruiken voor het maken van de release. De optie gitTag gebruikt automatisch de tag die is gekoppeld aan de Git-doorvoering. Gebruik de optie userSpecifiedTag om handmatig een tag op te geven.


tagPattern - tagpatroon
string. Facultatief. Gebruiken wanneer tagSource = gitTag.

Hiermee geeft u het Git-tagpatroon op met behulp van regex, bijvoorbeeld release-v1.*. Er wordt alleen een GitHub-release gemaakt voor doorvoeringen met overeenkomende Git-tag.


tag - tag
string. Vereist wanneer action = edit || action = delete || tagSource = userSpecifiedTag.

Hiermee geeft u de tag op die u wilt gebruiken wanneer u een release maakt, bewerkt of verwijdert. U kunt in dit veld ook een variabele gebruiken, zoals $(myTagName).


title - releasetitel
string. Facultatief. Gebruiken wanneer action = create || action = edit.

Hiermee geeft u de titel van de GitHub-release. Als deze leeg blijft, wordt de tag gebruikt als releasetitel.


releaseNotesSource - releaseopmerkingen
string. Facultatief. Gebruiken wanneer action = create || action = edit. Toegestane waarden: filePath (bestand met releaseopmerkingen), inline (opmerkingen bij de release inline). Standaardwaarde: filePath.

Hiermee geeft u de beschrijving van de GitHub-release. Gebruik de optie filePath (releaseopmerkingenbestand) om bestandsinhoud als releaseopmerkingen te gebruiken. Gebruik de optie inline (Opmerkingen bij de release inline) om handmatig releaseopmerkingen in te voeren


releaseNotesFilePath - bestandspad voor releaseopmerkingen
string. Facultatief. Gebruiken wanneer releaseNotesSource = filePath.

Hiermee geeft u het bestand met de releaseopmerkingen.


opmerkingen bij de release releaseNotesInline -
string. Facultatief. Gebruiken wanneer releaseNotesSource = inline.

Hiermee geeft u de releaseopmerkingen op. Markdown wordt ondersteund.


assets - assets
string. Facultatief. Gebruiken wanneer action = create || action = edit. Standaardwaarde: $(Build.ArtifactStagingDirectory)/*.

Hiermee geeft u de bestanden die u wilt uploaden als assets van de release. U kunt jokertekens gebruiken om meerdere bestanden op te geven. Gebruik bijvoorbeeld $(Build.ArtifactStagingDirectory)/*.zip of gebruik $(System.DefaultWorkingDirectory)/*.zip voor release-pijplijnen.

U kunt ook meerdere patronen opgeven, één per regel. Standaard worden alle bestanden in de $(Build.ArtifactStagingDirectory) map geüpload. Zie build-variabelen en releasevariabelenvoor meer informatie over de lijst met vooraf gedefinieerde variabelen die beschikbaar zijn.


assetUploadMode - modus voor het uploaden van assets
string. Facultatief. Gebruiken wanneer action = edit. Toegestane waarden: delete (bestaande assets verwijderen), replace (bestaande assets vervangen). Standaardwaarde: delete.

Hiermee geeft u de uploadmodus voor assets op die u wilt gebruiken. Gebruik de optie delete (Bestaande assets verwijderen) om eerst bestaande assets in de release te verwijderen en vervolgens alle assets te uploaden. Gebruik de optie replace (bestaande assets vervangen) om assets met dezelfde naam te vervangen.


isDraft - conceptrelease
boolean. Facultatief. Gebruiken wanneer action = create || action = edit. Standaardwaarde: false.

Geeft aan of de release moet worden opgeslagen als concept (niet gepubliceerd). Als false, wordt de release gepubliceerd.


isPreRelease - voorlopige versie van
boolean. Facultatief. Gebruiken wanneer action = create || action = edit. Standaardwaarde: false.

Hiermee wordt aangegeven of de release moet worden gemarkeerd als een voorlopige versie.


addChangeLog - Wijzigingenlogboek toevoegen
boolean. Facultatief. Gebruiken wanneer action = create || action = edit. Standaardwaarde: true.

Hiermee geeft u op of u een wijzigingslogboek wilt opnemen. Als deze optie is ingesteld op true, wordt er een lijst met wijzigingen (doorvoeringen en problemen) tussen de huidige release en de laatste gepubliceerde release gegenereerd en toegevoegd aan de releaseopmerkingen.


changeLogCompareToRelease - vergelijken met
string. Vereist wanneer addChangeLog = true. Toegestane waarden: lastFullRelease (laatste volledige release), lastNonDraftRelease (laatste niet-conceptrelease), lastNonDraftReleaseByTag (laatste niet-conceptrelease per tag). Standaardwaarde: lastFullRelease.

Geeft aan met welke release moet worden vergeleken om het wijzigingenlogboek te genereren:

  • lastFullRelease (laatste volledige release): Vergelijkt de huidige release met de meest recente niet-conceptrelease die niet is gemarkeerd als voorlopige versie.
  • lastNonDraftRelease (laatste niet-conceptrelease): vergelijkt de huidige release met de meest recente niet-conceptrelease.
  • lastNonDraftReleaseByTag (laatste niet-conceptrelease per tag): Vergelijkt de huidige release met de laatste niet-conceptrelease die overeenkomt met de opgegeven tag. U kunt ook een regex opgeven in plaats van een exacte tag.

changeLogCompareToReleaseTag - releasetag
string. Vereist wanneer changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Hiermee geeft u de regex voor releasetag. Release die overeenkomt met deze tag wordt gebruikt als basis voor de berekening van wijzigingenlogboeken.


changeLogType - changelogtype
string. Vereist wanneer addChangeLog = true. Toegestane waarden: commitBased (op basis van doorvoer), issueBased (op basis van probleem). Standaardwaarde: commitBased.

Hiermee geeft u het type changelog op. Een wijzigingslogboek kan op doorvoeren of op problemen zijn gebaseerd. Een wijzigingslogboek op basis van doorvoer bevat alle doorvoeringen die zijn opgenomen in een release. In een wijzigingslogboek op basis van problemen worden alle problemen of pull-aanvragen (PULL's) vermeld die zijn opgenomen in de release.


changeLogLabels - categorieën
string. Facultatief. Gebruiken wanneer changeLogType = issueBased && addChangeLog = true. Standaardwaarde: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Categoriseert wijzigingen op basis van het label dat aan het probleem of de pull-aanvraag is gekoppeld. Voor een label kunt u de weergavenaam voor de categorie en de status van het probleem vermelden. Voorbeelden van labels zijn: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". In gevallen waarin een wijziging meerdere labels bevat, heeft het eerste opgegeven label prioriteit. Laat dit veld leeg om een platte lijst met problemen of PULL's weer te geven.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Gebruik deze taak in uw pijplijn om een GitHub-releasete maken, bewerken of verwijderen.

GitHub-serviceverbinding

Deze taak vereist een GitHub-serviceverbinding met Machtiging schrijven voor de GitHub-opslagplaats. U kunt een GitHub-serviceverbinding maken in uw Azure Pipelines-project. Gebruik na het maken de naam van de serviceverbinding in de instellingen van deze taak.

Voorbeelden

Een GitHub-release maken

De volgende YAML maakt elke keer dat de taak wordt uitgevoerd een GitHub-release. Het buildnummer wordt gebruikt als de tagversie voor de release. Alle .exe bestanden en README.txt bestanden in de map $(Build.ArtifactStagingDirectory) worden geüpload als assets. Standaard genereert de taak ook een wijzigingslogboek (een lijst met doorvoeringen en problemen die deel uitmaken van deze release) en publiceert deze als releaseopmerkingen.

- 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

U kunt ook het maken van de release beheren op basis van opslagplaatstags. Met de volgende YAML wordt alleen een GitHub-release gemaakt wanneer aan de doorvoer die de pijplijn activeert een Git-tag is gekoppeld. De GitHub-release wordt gemaakt met dezelfde tagversie als de bijbehorende Git-tag.

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

U kunt de taak ook gebruiken in combinatie met taakvoorwaarden om nog nauwkeuriger controle te krijgen over wanneer de taak wordt uitgevoerd, waardoor het maken van releases wordt beperkt. In de volgende YAML wordt de taak bijvoorbeeld alleen uitgevoerd wanneer de pijplijn wordt geactiveerd door een Git-tag die overeenkomt met het patroon '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

Een GitHub-release bewerken

Met de volgende YAML wordt de status van een GitHub-release bijgewerkt van 'concept' naar 'gepubliceerd'. De release die moet worden bewerkt, wordt bepaald door de opgegeven tag.

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

Een GitHub-release verwijderen

Met de volgende YAML wordt een GitHub-release verwijderd. De release die moet worden verwijderd, wordt bepaald door de opgegeven tag.

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

Opmerkingen bij de release inline

Met de volgende YAML maakt u een GitHub-release en voegt u opmerkingen bij de inline-release toe.

- 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>

Vereisten

Voorwaarde Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
eisen Geen
mogelijkheden Deze taak voldoet niet aan de vereisten voor volgende taken in de taak.
opdrachtbeperkingen Welk dan ook
variabelen instellen Welk dan ook
Agentversie 2.0.0 of hoger
Taakcategorie Nutsvoorzieningen