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

Eingaben

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.


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

Gibt den Typ des auszuführenden Releasevorgangs an. Mit dieser Aufgabe kann eine GitHub-Version erstellt, bearbeitet oder gelöscht werden.


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

Gibt den Commit-SHA an, den Sie zum Erstellen der GitHub-Version verwenden möchten, z. B 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. . Sie können in diesem Feld auch eine Variable wie $(myCommitSHA)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 Releaseerstellung verwenden möchten. Die gitTag Option verwendet automatisch das Tag, das dem Git-Commit zugeordnet ist. Verwenden Sie die userSpecifiedTag Option, um ein Tag manuell bereitzustellen.


tagPattern - Tagmuster
string. Optional. Verwenden Sie , wenn tagSource = gitTag.

Gibt das Git-Tagmuster mithilfe von regex an, z. B release-v1.*. . Ein GitHub-Release wird nur für Commits mit dem entsprechenden Git-Tag erstellt.


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

Gibt das Tag an, das Sie verwenden möchten, wenn Sie eine Version erstellen, bearbeiten oder löschen. Sie können in diesem Feld auch eine Variable wie $(myTagName)verwenden.


title - Releasetitel
string. Optional. Verwenden Sie , wenn action = create || action = edit.

Gibt den Titel des GitHub-Releases an. Ohne Angabe wird das Tag als Releasetitel verwendet.


releaseNotesSource - Quelle der Versionshinweise
string. Optional. Verwenden Sie , wenn action = create || action = edit. Zulässige Werte: filePath (Versionshinweisedatei), inline (Inlineversionshinweise). Standardwert. filePath.

Gibt die Beschreibung der GitHub-Version an. Verwenden Sie die filePath Option (Versionshinweisedatei), um Dateiinhalte als Versionshinweise zu verwenden. Verwenden Sie die inline Option (Inlineversionshinweise), um Versionshinweise manuell einzugeben.


releaseNotesFilePath - Dateipfad mit Versionshinweisen
string. Optional. Verwenden Sie , wenn releaseNotesSource = filePath.

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


releaseNotesInline - Versionshinweise
string. Optional. Verwenden Sie , wenn releaseNotesSource = inline.

Gibt die Versionshinweise an. Markdown wird unterstützt.


assets - Vermögenswerte
string. Optional. Verwenden Sie , wenn action = create || action = edit. Standardwert. $(Build.ArtifactStagingDirectory)/*.

Gibt die Dateien an, die Sie als Ressourcen der Version hochladen möchten. Sie können Einen Feldhalter verwenden, um mehrere Dateien anzugeben. Verwenden Oder verwenden Sie $(Build.ArtifactStagingDirectory)/*.zip$(System.DefaultWorkingDirectory)/*.zip z. B. für Releasepipelines.

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


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

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


isDraft - Releaseentwurf
boolean. Optional. Verwenden Sie , wenn action = create || action = edit. Standardwert. false.

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


isPreRelease - Vorabversion
boolean. Optional. Verwenden Sie , wenn action = create || action = edit. Standardwert. false.

Gibt an, ob das Release als Vorabversion gekennzeichnet werden soll.


addChangeLog - Changelog hinzufügen
boolean. Optional. Verwenden Sie , wenn action = create || action = edit. Standardwert. true.

Gibt an, ob Sie ein Changelog einschließen möchten. Wenn auf truefestgelegt ist, wird eine Liste der Änderungen (Commits und Probleme) zwischen dem aktuellen Release und dem letzten veröffentlichten Release generiert und den Versionshinweisen angefügt.


changeLogCompareToRelease - Vergleich mit
string. Erforderlich, wenn addChangeLog = true. Zulässige Werte: lastFullRelease (Last full release), lastNonDraftRelease (Last non-draft release), lastNonDraftReleaseByTag (Last non-draft release by tag). Standardwert. lastFullRelease.

Gibt an, mit welchem Release verglichen werden soll, um das Changelog zu generieren:

  • lastFullRelease (Letztes vollständiges Release): Vergleicht das aktuelle Release mit der neuesten Version ohne Entwurf, die nicht als Vorabversion gekennzeichnet ist.
  • lastNonDraftRelease (Letztes Nichtentwurfsrelease): Vergleicht das aktuelle Release mit dem neuesten Release ohne Entwurf.
  • lastNonDraftReleaseByTag (Letztes Release ohne Entwurf nach Tag): Vergleicht das aktuelle Release mit dem letzten Nichtentwurfsrelease, das dem angegebenen Tag entspricht. Sie können auch einen Regex anstelle eines exakten Tags angeben.

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

Gibt das regex-Tag für release an. Das Release, das diesem Tag entspricht, wird als Basis für die Changelogberechnung verwendet.


changeLogType - Changelogtyp
string. Erforderlich, wenn addChangeLog = true. Zulässige Werte: commitBased (Commitbasiert), issueBased (Problembasiert). Standardwert. commitBased.

Gibt den Changelogtyp an. Ein Changelog kann commitbasiert oder problembasiert sein. Ein Commit-basiertes Changelog listet alle Commits auf, die in einer Version enthalten sind. Ein problembasiertes Changelog listet alle Probleme oder Pull Requests (PRs) auf, die in der Version enthalten sind.


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

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


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Bemerkungen

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

GitHub-Dienstverbindung

Für diese Aufgabe ist eine GitHub-Dienstverbindung mit Schreibberechtigung 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

GitHub-Release erstellen

Der folgende YAML-Code erstellt bei jeder Ausführung der Aufgabe ein GitHub-Release. Die Buildnummer wird als Tagversion für das Release verwendet. Alle EXE-Dateien und README.txt-Dateien im Ordner „$(Build.ArtifactStagingDirectory)“ werden als Ressourcen hochgeladen. Standardmäßig generiert die Aufgabe auch ein Änderungsprotokoll (eine Liste der Commits und Probleme, die Teil dieses Release 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 des Release basierend auf Repositorytags steuern. Der folgende YAML-Code erstellt nur dann ein GitHub-Release, wenn dem Commit, der die Pipeline auslöst, ein Git-Tag zugeordnet ist. Das GitHub-Release wird mit derselben Tagversion wie das zugehörige Git-Tag erstellt.

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

Möglicherweise möchten Sie die Aufgabe auch in Verbindung mit Aufgabenbedingungen verwenden, um noch präziser kontrollieren zu können, wann der Task ausgeführt wird, wodurch die Erstellung von Releases eingeschränkt wird. Im folgenden YAML-Code wird die Aufgabe beispielsweise nur ausgeführt, wenn die Pipeline durch ein 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

GitHub-Release bearbeiten

Der folgende YAML-Code aktualisiert den Status eines GitHub-Release von „Entwurf“ in „veröffentlicht“. Das zu bearbeitende Release 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

GitHub-Release löschen

Der folgende YAML-Code löscht ein GitHub-Release. Das zu löschende Release wird durch das angegebene Tag bestimmt.

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

Inlineversionshinweise

Mit dem folgenden YAML-Code wird ein GitHub-Release erstellt, und Inlineversionshinweise werden hinzugefügt.

- 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, Klassischer Build, klassische Version
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Einstellbare Variablen Any
Agent-Version 2.0.0 oder höher
Aufgabenkategorie Hilfsprogramm