Udostępnij za pośrednictwem


GitHubRelease@1 — zadanie wydania usługi GitHub w wersji 1

To zadanie służy do tworzenia, edytowania lub usuwania wydania usługi GitHub.

Składnia

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

Dane wejściowe

gitHubConnection - połączenia GitHub (OAuth lub PAT)
string. To jest wymagane.

Określa nazwę połączenia usługi GitHub, które ma być używane do łączenia się z repozytorium GitHub. Połączenie musi być oparte na protokole OAuth użytkownika usługi GitHub lub osobistym tokenie dostępu usługi GitHub. Aby uzyskać więcej informacji na temat połączeń usług, zobacz Zarządzanie połączeniami usług.


repozytorium repositoryName -
string. To jest wymagane. Wartość domyślna: $(Build.Repository.Name).

Określa nazwę repozytorium GitHub, w którym utworzysz, edytujesz lub usuniesz wydanie usługi GitHub.


action - akcja
string. To jest wymagane. Dozwolone wartości: create, edit, delete. Wartość domyślna: create.

Określa typ operacji wydania do wykonania. To zadanie może tworzyć, edytować lub usuwać wydanie usługi GitHub.


target - target
string. Wymagane, gdy action = create || action = edit. Wartość domyślna: $(Build.SourceVersion).

Określa nazwę sha zatwierdzenia lub gałęzi, której chcesz użyć do utworzenia wydania usługi GitHub, na przykład 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 lub main. Możesz również użyć zmiennej, takiej jak $(myCommitSHA), w tym polu.


źródła tagów tagSource -
string. Wymagane, gdy action = create. Dozwolone wartości: gitTag (tag Git), userSpecifiedTag (tag określony przez użytkownika). Wartość domyślna: gitTag.

Określa tag, którego chcesz użyć do tworzenia wydania. Opcja gitTag automatycznie używa tagu skojarzonego z zatwierdzeniem Git. Użyj opcji userSpecifiedTag, aby ręcznie podać tag.


tagPattern - wzorzec tagu
string. Opcjonalny. Użyj polecenia , gdy tagSource = gitTag.

Określa wzorzec tagu Git przy użyciu wyrażenia regularnego, na przykład release-v1.*. Zostanie utworzona wersja usługi GitHub tylko dla zatwierdzeń, które mają pasujący tag Git.


tagów
string. Wymagane, gdy action = edit || action = delete || tagSource = userSpecifiedTag.

Określa tag, którego chcesz użyć podczas tworzenia, edytowania lub usuwania wydania. Możesz również użyć zmiennej, takiej jak $(myTagName), w tym polu.


tytuł wydania title -
string. Opcjonalny. Użyj polecenia , gdy action = create || action = edit.

Określa tytuł wydania usługi GitHub. Jeśli pole pozostanie puste, tag będzie używany jako tytuł wydania.


releaseNotesSource - źródła informacji o wersji
string. Opcjonalny. Użyj polecenia , gdy action = create || action = edit. Dozwolone wartości: filePath (plik informacji o wersji), inline (informacje o wersji wbudowanej). Wartość domyślna: filePath.

Określa opis wydania usługi GitHub. Użyj opcji filePath (plik informacji o wersji), aby użyć zawartości pliku jako informacji o wersji. Użyj opcji inline (informacje o wersji wbudowanej), aby ręcznie wprowadzić informacje o wersji


releaseNotesFilePath - ścieżka pliku informacji o wersji
string. Opcjonalny. Użyj polecenia , gdy releaseNotesSource = filePath.

Określa plik zawierający informacje o wersji.


informacje o wersji releaseNotesInline -
string. Opcjonalny. Użyj polecenia , gdy releaseNotesSource = inline.

Określa informacje o wersji. Język Markdown jest obsługiwany.


assets - zasoby
string. Opcjonalny. Użyj polecenia , gdy action = create || action = edit. Wartość domyślna: $(Build.ArtifactStagingDirectory)/*.

Określa pliki, które chcesz przekazać jako zasoby wydania. Możesz użyć symboli wieloznacznych, aby określić wiele plików. Na przykład użyj $(Build.ArtifactStagingDirectory)/*.zip lub użyj $(System.DefaultWorkingDirectory)/*.zip dla potoków wydania.

Można również określić wiele wzorców, po jednym na wiersz. Domyślnie wszystkie pliki w katalogu $(Build.ArtifactStagingDirectory) zostaną przekazane. Aby uzyskać więcej informacji na temat listy wstępnie zdefiniowanych zmiennych, zobacz zmiennych kompilacji i zmiennych wydania .


assetUploadMode - tryb przekazywania zasobów
string. Opcjonalny. Użyj polecenia , gdy action = edit. Dozwolone wartości: delete (Usuń zasoby exisiting), replace (Zastąp istniejące zasoby). Wartość domyślna: delete.

Określa tryb przekazywania zasobów, którego chcesz użyć. Użyj opcji delete (Usuń istniejące zasoby), aby najpierw usunąć wszystkie istniejące zasoby w wydaniu, a następnie przekazać wszystkie zasoby. Użyj opcji replace (Zastąp istniejące zasoby), aby zastąpić wszystkie zasoby o tej samej nazwie.


isDraft - wersji roboczej
boolean. Opcjonalny. Użyj polecenia , gdy action = create || action = edit. Wartość domyślna: false.

Wskazuje, czy wydanie powinno zostać zapisane jako wersja robocza (cofnięto publikowanie). Jeśli false, wydanie zostanie opublikowane.


wersji wstępnej isPreRelease -
boolean. Opcjonalny. Użyj polecenia , gdy action = create || action = edit. Wartość domyślna: false.

Wskazuje, czy wydanie powinno być oznaczone jako wersja wstępna.


addChangeLog - Dodaj dziennik zmian
boolean. Opcjonalny. Użyj polecenia , gdy action = create || action = edit. Wartość domyślna: true.

Określa, czy chcesz dołączyć dziennik zmian. W przypadku ustawienia wartości truelista zmian (zatwierdzeń i problemów) między bieżącą wersją a ostatnią opublikowaną wersją zostanie wygenerowana i dołączona do informacji o wersji.


changeLogCompareToRelease - Porównanie z
string. Wymagane, gdy addChangeLog = true. Dozwolone wartości: lastFullRelease (ostatnia pełna wersja), lastNonDraftRelease (ostatnia wersja niezwiązana z wersją roboczą), lastNonDraftReleaseByTag (Ostatnie wydanie nie wersji roboczej według tagu). Wartość domyślna: lastFullRelease.

Wskazuje, z którą wersją ma być porównywana, aby wygenerować dziennik zmian:

  • lastFullRelease (ostatnia pełna wersja): porównuje bieżącą wersję z najnowszą wersją inną niż wersja robocza, która nie jest oznaczona jako wersja wstępna.
  • lastNonDraftRelease (ostatnia wersja niezwiązana z wersją roboczą): porównuje bieżącą wersję z najnowszą wersją inną niż wersja robocza.
  • lastNonDraftReleaseByTag (ostatnie wydanie inne niż wersja robocza według tagu): porównuje bieżącą wersję z ostatnim wydaniem nienależącym do wersji roboczej pasującej do określonego tagu. Można również określić wyrażenie regularne zamiast dokładnego tagu.

changeLogCompareToReleaseTag - tagu wydania
string. Wymagane, gdy changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Określa wyrażenie regularne dla tagu wydania. Dopasowanie wydania tego tagu będzie używane jako podstawa do obliczeń dziennika zmian.


changeLogType - typ dziennika zmian
string. Wymagane, gdy addChangeLog = true. Dozwolone wartości: commitBased (na podstawie zatwierdzenia), issueBased (na podstawie problemu). Wartość domyślna: commitBased.

Określa typ dziennika zmian. Dziennik zmian może być oparty na zatwierdzeniach lub oparty na problemach. Dziennik zmian oparty na zatwierdzeniach zawiera listę wszystkich zatwierdzeń uwzględnionych w wydaniu. Dziennik zmian oparty na problemach zawiera listę wszystkich problemów lub żądań ściągnięcia uwzględnionych w wydaniu.


kategorii changeLogLabels -
string. Opcjonalny. Użyj polecenia , gdy changeLogType = issueBased && addChangeLog = true. Wartość domyślna: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Kategoryzuje zmiany na podstawie etykiety skojarzonej z problemem lub żądaniem ściągnięcia. W przypadku etykiety możesz wspomnieć o nazwie wyświetlanej kategorii i stanie problemu. Przykłady etykiet to: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". W przypadkach, gdy zmiana zawiera wiele etykiet, pierwsza określona etykieta ma priorytet. Pozostaw to pole puste, aby wyświetlić płaską listę problemów lub żądania ściągnięcia.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

Żaden.

Uwagi

Użyj tego zadania w potoku, aby utworzyć, edytować lub odrzucić wersji usługi GitHub.

Połączenie z usługą GitHub

To zadanie wymaga połączenia usługi GitHub z uprawnieniem Write do repozytorium GitHub. Połączenie usługi GitHub można utworzyć w projekcie usługi Azure Pipelines. Po utworzeniu użyj nazwy połączenia usługi w ustawieniach tego zadania.

Przykłady

Tworzenie wydania usługi GitHub

Poniższy kod YAML tworzy wydanie usługi GitHub za każdym razem, gdy zadanie zostanie uruchomione. Numer kompilacji jest używany jako wersja tagu dla wydania. Wszystkie pliki .exe i pliki README.txt w folderze $(Build.ArtifactStagingDirectory) są przekazywane jako zasoby. Domyślnie zadanie generuje również dziennik zmian (listę zatwierdzeń i problemów, które są częścią tej wersji) i publikuje je jako informacje o wersji.

- 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

Możesz również kontrolować tworzenie wydania na podstawie tagów repozytorium. Poniższy kod YAML tworzy wydanie usługi GitHub tylko wtedy, gdy zatwierdzenie wyzwalające potok ma skojarzony tag Git. Wydanie usługi GitHub jest tworzone z tą samą wersją tagu co skojarzony tag Git.

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

Możesz również użyć zadania w połączeniu z warunkami zadania, aby uzyskać jeszcze bardziej precyzyjną kontrolę nad uruchamianiem zadania, ograniczając tym samym tworzenie wydań. Na przykład w poniższym języku YAML zadanie jest uruchamiane tylko wtedy, gdy potok jest wyzwalany przez tag Git pasujący do wzorca "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

Edytowanie wydania usługi GitHub

Poniższy kod YAML aktualizuje stan wydania usługi GitHub z wersji roboczej do "opublikowanej". Wydanie do edycji jest określane przez określony tag.

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

Usuwanie wydania usługi GitHub

Poniższy kod YAML usuwa wydanie usługi GitHub. Wydanie do usunięcia jest określane przez określony tag.

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

Informacje o wersji wbudowanej

Poniższy kod YAML tworzy wersję usługi GitHub i dodaj wbudowane informacje o wersji.

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

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Żaden
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta 2.0.0 lub nowsza
Kategoria zadań Użyteczność