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łączenie z usługą GitHub (OAuth lub PAT)
string. Wymagane.

Określa nazwę połączenia usługi GitHub, które ma być używane do nawiązywania połączenia 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.


repositoryName - Repozytorium
string. Wymagane. Wartość domyślna: $(Build.Repository.Name).

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


action - Działania
string. 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 - Docelowego
string. Wymagane, gdy action = create || action = edit. Wartość domyślna: $(Build.SourceVersion).

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


tagSource - Źródło tagu
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 wersji. Opcja gitTag automatycznie używa tagu skojarzonego z zatwierdzeniem usługi Git. userSpecifiedTag Użyj opcji , 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.*. Wersja usługi GitHub zostanie utworzona tylko dla zatwierdzeń, które mają pasujący tag Git.


tag - Tag
string. Wymagane, gdy action = edit || action = delete || tagSource = userSpecifiedTag.

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


title - Tytuł wydania
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ło 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. filePath Użyj opcji (plik informacji o wersji), aby użyć zawartości pliku jako informacji o wersji. inline Użyj opcji (wbudowane informacje o wersji), 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.


releaseNotesInline - Wersji
string. Opcjonalny. Użyj polecenia , gdy releaseNotesSource = inline.

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


assets - Aktywów
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żna użyć symboli wieloznacznych, aby określić wiele plików. Na przykład użyj polecenia $(Build.ArtifactStagingDirectory)/*.zip lub użyj dla $(System.DefaultWorkingDirectory)/*.zip potoków wydania.

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


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

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


isDraft - Wersja robocza
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 falsewersja zostanie opublikowana.


isPreRelease - Wersja wstępna
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 - Dodawanie dziennika 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ównaj 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 inne niż wersja robocza według tagu). Wartość domyślna: lastFullRelease.

Wskazuje, które wydanie ma być porównywane z, aby wygenerować dziennik zmian:

  • lastFullRelease (Ostatnia pełna wersja): porównuje bieżącą wersję z najnowszą wersją niezwiązaną z wersją roboczą, która nie jest oznaczona jako wersja wstępna.
  • lastNonDraftRelease (Ostatnie wydanie inne niż wersja robocza): porównuje bieżącą wersję z najnowszą wersją roboczą.
  • lastNonDraftReleaseByTag (Ostatnie wydanie inne niż wersja robocza według tagu): porównuje bieżącą wersję z ostatnią wersją inną niż wersja robocza zgodną z określonym tagiem. Można również określić wyrażenie regularne zamiast dokładnego tagu.

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

Określa wyrażenie regularne dla tagu wydania. Wydanie zgodne z tym tagiem będzie używane jako podstawa do obliczeń dziennika zmian.


changeLogType - Typ dziennika zmian
string. Wymagane, gdy addChangeLog = true. Dozwolone wartości: commitBased (oparte na zatwierdzeniach), issueBased (Oparte na problemie). 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ń zawartych w wydaniu. Dziennik zmian oparty na problemach zawiera listę wszystkich problemów lub żądań ściągnięcia uwzględnionych w wydaniu.


changeLogLabels - Kategorie
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 ma wiele etykiet na nim, 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 zadania

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

Zmienne wyjściowe

Brak.

Uwagi

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

Połączenie z usługą GitHub

To zadanie wymaga połączenia usługi GitHub z uprawnieniem Zapis do repozytorium GitHub. Połączenie usługi GitHub można utworzyć w projekcie usługi Azure Pipelines. Po utworzeniu użyj nazwy połączenia z usługą 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 jest uruchamiane. 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 go 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 tworzenie wydań. Na przykład w poniższym pliku YAML zadanie jest uruchamiane tylko wtedy, gdy potok jest wyzwalany przez tag Usługi 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 "draft" do "published". 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 wersję 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 dodaje 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 w Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne ustawialne Dowolne
Wersja agenta 2.0.0 lub nowsza
Kategoria zadania Narzędzie