Freigeben über


GitHubRelease@1 – GitHub Release v1-Aufgabe

Verwenden Sie diese Aufgabe, um eine GitHub-Version zu erstellen, zu bearbeiten oder zu löschen.

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

Eingänge

gitHubConnection - GitHub-Verbindung (OAuth oder PAT)
string. Erforderlich.

Gibt den Namen der GitHub-Dienstverbindung an, die zum Herstellen einer Verbindung mit dem GitHub-Repository verwendet werden soll. Die Verbindung muss auf dem OAuth eines GitHub-Benutzers oder einem persönlichen GitHub-Zugriffstoken basieren. Weitere Informationen zu Dienstverbindungen finden Sie unter Verwalten von Dienstverbindungen.


repositoryName - Repository-
string. Erforderlich. Standardwert: $(Build.Repository.Name).

Gibt den Namen des GitHub-Repositorys an, in dem Sie die GitHub-Version erstellen, bearbeiten oder löschen möchten.


action - Aktion
string. Erforderlich. Zulässige Werte: create, edit, delete. Standardwert: create.

Gibt den Typ des auszuführenden Freigabevorgangs an. Diese Aufgabe kann eine GitHub-Version erstellen, bearbeiten oder löschen.


target - Ziel-
string. Erforderlich, wenn action = create || action = edit. Standardwert: $(Build.SourceVersion).

Gibt den Commit-SHA- oder Verzweigungsnamen an, den Sie zum Erstellen der GitHub-Version verwenden möchten, z. B. 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 oder main. Sie können auch eine Variable wie $(myCommitSHA)in diesem Feld verwenden.


tagSource - Tagquelle
string. Erforderlich, wenn action = create. Zulässige Werte: gitTag (Git-Tag), userSpecifiedTag (vom Benutzer angegebenes Tag). Standardwert: gitTag.

Gibt das Tag an, das Sie für die Freigabeerstellung verwenden möchten. Die Option gitTag verwendet automatisch das Tag, das dem Git-Commit zugeordnet ist. Verwenden Sie die Option userSpecifiedTag, um manuell ein Tag bereitzustellen.


tagPattern - Tagmuster
string. Wahlfrei. Wird verwendet, wenn tagSource = gitTag.

Gibt das Git-Tagmuster mithilfe von regex an, z. B. release-v1.*. Eine GitHub-Version wird nur für Commits erstellt, die übereinstimmende Git-Tag aufweisen.


tag - Tag-
string. Erforderlich, wenn action = edit || action = delete || tagSource = userSpecifiedTag.

Gibt das Tag an, das Sie beim Erstellen, Bearbeiten oder Löschen einer Version verwenden möchten. Sie können auch eine Variable wie $(myTagName)in diesem Feld verwenden.


title - Releasetitel
string. Wahlfrei. Wird verwendet, wenn action = create || action = edit.

Gibt den Titel der GitHub-Version an. Wenn sie leer gelassen wird, wird das Tag als Releasetitel verwendet.


releaseNotesSource - Versionshinweisequelle
string. Wahlfrei. Wird verwendet, wenn action = create || action = edit. Zulässige Werte: filePath (Versionshinweisedatei), inline (Inlineversionshinweise). Standardwert: filePath.

Gibt die Beschreibung der GitHub-Version an. Verwenden Sie die Option filePath (Versionshinweisedatei), um Dateiinhalte als Versionshinweise zu verwenden. Verwenden der Option inline (Inlineversionshinweise) zum manuellen Eingeben von Versionshinweisen


releaseNotesFilePath - Dateipfad der Versionshinweise
string. Wahlfrei. Wird verwendet, wenn releaseNotesSource = filePath.

Gibt die Datei an, die die Versionshinweise enthält.


releaseNotesInline - Versionshinweise
string. Wahlfrei. Wird verwendet, wenn releaseNotesSource = inline.

Gibt die Versionshinweise an. Markdown wird unterstützt.


assets - Ressourcen
string. Wahlfrei. Wird verwendet, wenn action = create || action = edit. Standardwert: $(Build.ArtifactStagingDirectory)/*.

Gibt die Dateien an, die Sie als Objekte der Version hochladen möchten. Mit Wildcardzeichen können Sie mehrere Dateien angeben. Verwenden Sie z. B. $(Build.ArtifactStagingDirectory)/*.zip oder verwenden Sie $(System.DefaultWorkingDirectory)/*.zip für Releasepipelinen.

Sie können auch mehrere Muster pro Zeile angeben. Standardmäßig werden alle Dateien im verzeichnis $(Build.ArtifactStagingDirectory) hochgeladen. Weitere Informationen zur Liste der verfügbaren vordefinierten Variablen finden Sie unter Buildvariablen und Releasevariablen.


assetUploadMode - Modus zum Hochladen von Ressourcen
string. Wahlfrei. Wird verwendet, wenn action = edit. Zulässige Werte: delete (Ressourcen löschen), replace (Vorhandene Ressourcen ersetzen). Standardwert: delete.

Gibt den Ressourcenuploadmodus an, den Sie verwenden möchten. Verwenden Sie die Option delete (Vorhandene Ressourcen löschen), um zuerst vorhandene Ressourcen in der Version zu löschen und dann alle Ressourcen hochzuladen. Verwenden Sie die Option replace (Vorhandene Ressourcen ersetzen), um alle Ressourcen zu ersetzen, die denselben Namen haben.


isDraft - Entwurfsversion
boolean. Wahlfrei. Wird verwendet, wenn action = create || action = edit. Standardwert: false.

Gibt an, ob die Version als Entwurf (unveröffentlicht) gespeichert werden soll. Wenn false, wird die Version veröffentlicht.


isPreRelease - Vorabversion
boolean. Wahlfrei. Wird verwendet, wenn action = create || action = edit. Standardwert: false.

Gibt an, ob die Version als Vorabversion gekennzeichnet werden soll.


addChangeLog - Änderungsprotokoll hinzufügen
boolean. Wahlfrei. Wird verwendet, wenn action = create || action = edit. Standardwert: true.

Gibt an, ob Sie einen Änderungsprotokoll einschließen möchten. Bei Festlegung auf truewird eine Liste der Änderungen (Commits und Probleme) zwischen der aktuellen Version und der letzten veröffentlichten Version generiert und an die Versionshinweise angefügt.


changeLogCompareToRelease - Mit vergleichen
string. Erforderlich, wenn addChangeLog = true. Zulässige Werte: lastFullRelease (Letzte vollversion), lastNonDraftRelease (Letzte Nichtentwurfsversion), lastNonDraftReleaseByTag (Letzte Nichtentwurfsversion nach Tag). Standardwert: lastFullRelease.

Gibt an, mit welcher Version verglichen werden soll, um den Änderungsprotokoll zu generieren:

  • lastFullRelease (Letzte Vollversion): Vergleicht die aktuelle Version mit der neuesten Nichtentwurfsversion, die nicht als Vorabversion gekennzeichnet ist.
  • lastNonDraftRelease (Letzte Nichtentwurfsversion): Vergleicht die aktuelle Version mit der neuesten Version ohne Entwurf.
  • lastNonDraftReleaseByTag (Letzte Nichtentwurfsversion nach Tag): Vergleicht die aktuelle Version mit der letzten Nichtentwurfsversion, die dem angegebenen Tag entspricht. Sie können auch einen regulären Ausdruck anstelle eines exakten Tags angeben.

changeLogCompareToReleaseTag - Releasetag-
string. Erforderlich, wenn changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Gibt den regex für das Releasetag an. Der Releaseabgleich dieses Tags wird als Basis für die Berechnung des Änderungsprotokolls verwendet.


changeLogType - Änderungsprotokolltyp
string. Erforderlich, wenn addChangeLog = true. Zulässige Werte: commitBased (Commit basierend), issueBased (Problembasiert). Standardwert: commitBased.

Gibt den Änderungsprotokolltyp an. Ein Änderungsprotokoll kann commitbasiert oder problembasiert sein. In einem commitbasierten Änderungsprotokoll werden alle Commits aufgelistet, die in einer Version enthalten sind. In einem problembasierten Änderungsprotokoll werden alle Probleme oder Pullanforderungen (PRs) aufgelistet, die in der Version enthalten sind.


changeLogLabels - Kategorien
string. Wahlfrei. Wird verwendet, wenn changeLogType = issueBased && addChangeLog = true. Standardwert: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Kategorisiert Änderungen basierend auf der Bezeichnung, die dem Problem oder der PR zugeordnet ist. Bei einer Bezeichnung können Sie den Anzeigenamen für die Kategorie und den Status des Problems erwähnen. Beispiele für Etiketten sind: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". In Fällen, in denen eine Änderung mehrere Bezeichnungen enthält, hat die erste angegebene Bezeichnung Vorrang. Lassen Sie dieses Feld leer, um eine flache Liste von Problemen oder PRs anzuzeigen.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Keiner.

Bemerkungen

Verwenden Sie diese Aufgabe in Ihrer Pipeline, um eine GitHub-Versionzu erstellen, zu bearbeiten oder zu verwerfen.

GitHub-Dienstverbindung

Für diese Aufgabe ist eine GitHub-Dienstverbindung mit Write-Berechtigung für das GitHub-Repository erforderlich. Sie können eine GitHub-Dienstverbindung in Ihrem Azure Pipelines-Projekt erstellen. Verwenden Sie nach der Erstellung den Namen der Dienstverbindung in den Einstellungen dieser Aufgabe.

Beispiele

Erstellen einer GitHub-Version

Mit dem folgenden YAML wird jedes Mal, wenn die Aufgabe ausgeführt wird, eine GitHub-Version erstellt. Die Buildnummer wird als Tagversion für die Version verwendet. Alle .exe Dateien und README.txt Dateien im Ordner "$(Build.ArtifactStagingDirectory)" werden als Objekte hochgeladen. Standardmäßig generiert die Aufgabe auch ein Änderungsprotokoll (eine Liste von Commits und Problemen, die Teil dieser Version sind) und veröffentlicht es als Versionshinweise.

- 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

Sie können auch die Erstellung der Version basierend auf Repositorytags steuern. Mit dem folgenden YAML wird nur eine GitHub-Version erstellt, wenn der Commit, der die Pipeline auslöst, ein Git-Tag zugeordnet ist. Die GitHub-Version wird mit derselben Tagversion wie das zugeordnete Git-Tag erstellt.

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

Sie können auch die Aufgabe in Verbindung mit Aufgabenbedingungen verwenden, um noch genauere Kontrolle über die Ausführung der Aufgabe zu erhalten, wodurch die Erstellung von Versionen eingeschränkt wird. Im folgenden YAML wird die Aufgabe beispielsweise nur ausgeführt, wenn die Pipeline von einem Git-Tag ausgelöst wird, das dem Muster "refs/tags/release-v*" entspricht.

- 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

Bearbeiten einer GitHub-Version

Im folgenden YAML wird der Status einer GitHub-Version von "Entwurf" auf "veröffentlicht" aktualisiert. Die zu bearbeitende Freigabe wird durch das angegebene Tag bestimmt.

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

Löschen einer GitHub-Version

Im folgenden YAML wird eine GitHub-Version gelöscht. Die zu löschende Freigabe wird durch das angegebene Tag bestimmt.

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

Anmerkungen zur Inlineversion

Mit dem folgenden YAML erstellen Sie eine GitHub-Version, und fügen Sie Inlineversionshinweise hinzu.

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

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.0.0 oder höher
Vorgangskategorie Nützlichkeit