GitHub Release-Aufgabe
Azure DevOps Services
Verwenden Sie diese Aufgabe in Ihrer Pipeline, um ein GitHub Release zu erstellen, zu bearbeiten oder zu verwerfen.
Voraussetzungen
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.
YAML-Codeausschnitt
# GitHub Release
# Create, edit, or delete a GitHub release
- task: GitHubRelease@0
inputs:
gitHubConnection:
#repositoryName: '$(Build.Repository.Name)'
#action: 'create' # Options: create, edit, delete
#target: '$(Build.SourceVersion)' # Required when action == Create || Action == Edit
#tagSource: 'auto' # Required when action == Create# Options: auto, manual
#tagPattern: # Optional
#tag: # Required when action == Edit || Action == Delete || TagSource == Manual
#title: # Optional
#releaseNotesSource: 'file' # Optional. Options: file, inline
#releaseNotesInline: Use this option to manually enter release notes. Use with releaseNotesSource = inline
#releaseNotesFilePath: # Optional. Use the contents of a file as release notes.
#releaseNotes: # Optional
#assets: '$(Build.ArtifactStagingDirectory)/*' # Optional
#assetUploadMode: 'delete' # Optional. Options: delete, replace
#isDraft: false # Optional
#isPreRelease: false # Optional
#addChangeLog: true # Optional
#compareWith: 'lastFullRelease' # Required when addChangeLog == True. Options: lastFullRelease, lastRelease, lastReleaseByTag
#releaseTag: # Required when compareWith == LastReleaseByTag
Argumente
Argument | Beschreibung |
---|---|
gitHubConnection GitHub Verbindung | (Erforderlich) Geben Sie den Dienstverbindungsnamen für Ihre GitHub Verbindung ein. Weitere Informationen zu Dienstverbindungen finden Sie hier. |
repositoryName Repository | (Erforderlich) Wählen Sie den Namen GitHub Repositorys aus, in dem GitHub Releases erstellt werden. |
action Aktion | (Erforderlich) Wählen Sie den Typ des Releasevorgangs aus, den Sie ausführen möchten. Diese Aufgabe kann ein GitHub Release erstellen, bearbeiten oder verwerfen. |
target Ziel | (Erforderlich) Dies ist der Commit-SHA, für den das GitHub Release erstellt wird. Beispiel: 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 . Sie können hier auch Variablen verwenden. |
tagSource Tagquelle | (Erforderlich) Konfigurieren Sie das Tag, das für die Releaseerstellung verwendet werden soll. Die Option "Git-Tag" übernimmt automatisch das Tag, das diesem Commit zugeordnet ist. Verwenden Sie die Option "Vom Benutzer angegebenes Tag", falls Sie ein Tag manuell bereitstellen möchten. |
tag Tag | (Erforderlich) Geben Sie das Tag an, für das Sie ein Release erstellen, bearbeiten oder verwerfen möchten. Sie können hier auch Variablen verwenden. Beispiel: $(tagName) . |
title Releasetitel | (Optional) Geben Sie den Titel des GitHub Release an. Wenn das Tag leer gelassen wird, wird es als Releasetitel verwendet. |
releaseNotesSource Quelle der Versionshinweise | (Optional) Geben Sie die Beschreibung des GitHub Release an. Verwenden Sie die Option "Datei mit Versionshinweisen", um den Inhalt einer Datei als Versionshinweise zu verwenden. Verwenden Sie die Option "Versionshinweise inline", um die Versionshinweise manuell einzugeben. |
releaseNotesFilePath Dateipfad der Versionshinweise | (Optional) Wählen Sie die Datei aus, die die Versionshinweise enthält. |
releaseNotesInline Versionshinweise inline | (Optional) Geben Sie hier Ihre Versionshinweise ein. Markdown wird unterstützt. |
assets Objekte | (Optional) Geben Sie die Dateien an, die als Objekte für das Release hochgeladen werden sollen. Sie können Platzhalterzeichen verwenden, um einen Satz von Dateien anzugeben. Beispiel: $(Build.ArtifactStagingDirectory)/*.zip . Sie können auch mehrere Muster angeben – ein Muster pro Zeile. Standardmäßig werden alle Dateien im $(Build.ArtifactStagingDirectory) Verzeichnis hochgeladen. |
assetUploadMode Medienobjektuploadmodus | (Optional) Verwenden Sie die Option "Vorhandene Assets löschen", um zunächst alle vorhandenen Objekte in der Version zu löschen und dann alle Assets hochzuladen. Verwenden Sie die Option "Vorhandene Ressourcen ersetzen", um alle Ressourcen mit dem gleichen Namen zu ersetzen. |
isDraft Entwurfsversion | (Optional) Geben Sie an, ob das Release als Entwurf (nicht veröffentlicht) gespeichert werden soll. Gibt false an, dass das Release veröffentlicht wird. |
isPreRelease Vorabrelease | (Optional) Geben Sie an, ob das Release als Vorabversion markiert werden soll. |
addChangeLog Hinzufügen eines Änderungsprotokolls | (Optional) Wenn diese Einstellung auf true festgelegt ist, wird eine Liste der Änderungen (Commits und Probleme) zwischen diesem und dem letzten veröffentlichten Release generiert und an die Versionshinweise angefügt. |
Beispiele
Erstellen eines GitHub Release
Die folgende YAML-Datei erstellt jedes Mal, wenn der Task ausgeführt wird, 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 Objekte hochgeladen. Standardmäßig generiert der Task auch ein Änderungsprotokoll (eine Liste von Commits und Problemen, 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 der gleichen 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 die Aufgabe auch in Verbindung mit Aufgabenbedingungen verwenden, um eine noch feineren Kontrolle darüber zu erhalten, wann der Task ausgeführt wird, wodurch die Erstellung von Releases eingeschränkt wird. In der folgenden YAML-Datei wird der Task 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
Bearbeiten eines GitHub Release
Mit der folgenden YAML-Datei wird der Status eines GitHub Release von "draft" in "published" aktualisiert. 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
Löschen eines GitHub Release
Mit dem folgenden YAML-Befehl wird ein GitHub Release gelöscht. 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)
Versionshinweise zu Inlineversionen
Mit der folgenden YAML-Datei wird ein GitHub Release erstellt und Inline-Versionshinweise 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>
Open Source
Diese Aufgabe wird auf GitHub Open Source. Feedback und Beiträge sind willkommen.