GitHubRelease@1 – úloha GitHubu verze v1

Pomocí této úlohy můžete vytvořit, upravit nebo odstranit verzi GitHubu.

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

Vstupy

gitHubConnection - Připojení Ke GitHubu (OAuth nebo PAT)
string. Povinná hodnota.

Určuje název připojení služby GitHub, které se má použít pro připojení k úložišti GitHub. Připojení musí být založené na OAuth uživatele GitHubu nebo na osobním přístupovém tokenu GitHubu. Další informace o připojeních služeb najdete v tématu Správa připojení služeb.


repositoryName - Úložiště
string. Povinná hodnota. Výchozí hodnota: $(Build.Repository.Name).

Určuje název úložiště GitHub, ve kterém vytvoříte, upravíte nebo odstraníte verzi GitHubu.


action - Akce
string. Povinná hodnota. Povolené hodnoty: create, edit, delete. Výchozí hodnota: create.

Určuje typ operace uvolnění, která se má provést. Tato úloha může vytvořit, upravit nebo odstranit vydání GitHubu.


target - Cíl
string. Vyžaduje se, když action = create || action = edit. Výchozí hodnota: $(Build.SourceVersion).

Určuje algoritmus SHA potvrzení, který chcete použít k vytvoření verze GitHubu, například 48b11d8d6e92a22e3e9563a3f643699c16fd6e27. V tomto poli můžete také použít proměnnou, například $(myCommitSHA).


tagSource - Zdroj značek
string. Vyžaduje se, když action = create. Povolené hodnoty: gitTag (značka Gitu) userSpecifiedTag (značka zadaná uživatelem). Výchozí hodnota: gitTag.

Určuje značku, kterou chcete použít pro vytvoření verze. Možnost gitTag automaticky použije značku, která je přidružená k potvrzení Gitu. Pomocí možnosti userSpecifiedTag zadejte značku ručně.


tagPattern - Vzor značky
string. Nepovinný parametr. Použijte, když tagSource = gitTag.

Určuje vzor značky Git pomocí výrazu regex, například release-v1.*. Verze GitHubu se vytvoří jenom pro potvrzení, která mají odpovídající značku Gitu.


tag - Značku
string. Vyžaduje se, když action = edit || action = delete || tagSource = userSpecifiedTag.

Určuje značku, kterou chcete použít při vytváření, úpravách nebo odstraňování vydané verze. V tomto poli můžete také použít proměnnou, například $(myTagName).


title - Název verze
string. Nepovinný parametr. Použijte, když action = create || action = edit.

Určuje název verze GitHubu. Pokud zůstane prázdná, značka se použije jako název verze.


releaseNotesSource - Zdroj poznámek k verzi
string. Nepovinný parametr. Použijte, když action = create || action = edit. Povolené hodnoty: filePath (soubor s poznámkou k verzi), inline (vložené poznámky k verzi). Výchozí hodnota: filePath.

Určuje popis verze GitHubu. Pokud chcete jako poznámky k filePath verzi použít obsah souboru, použijte možnost (soubor poznámek k verzi). inline Ruční zadávání poznámek k verzi pomocí možnosti (Vložené poznámky k verzi)


releaseNotesFilePath - Cesta k souboru poznámek k verzi
string. Nepovinný parametr. Použijte, když releaseNotesSource = filePath.

Určuje soubor, který obsahuje poznámky k verzi.


releaseNotesInline - Poznámky
string. Nepovinný parametr. Použijte, když releaseNotesSource = inline.

Určuje poznámky k verzi. Markdown je podporovaný.


assets - Aktiv
string. Nepovinný parametr. Použijte, když action = create || action = edit. Výchozí hodnota: $(Build.ArtifactStagingDirectory)/*.

Určuje soubory, které chcete nahrát jako prostředky vydané verze. K určení více souborů můžete použít zástupné znaky. Můžete například použít $(Build.ArtifactStagingDirectory)/*.zip nebo použít $(System.DefaultWorkingDirectory)/*.zip pro kanály vydaných verzí.

Můžete také zadat více vzorů, jeden na řádek. Ve výchozím nastavení se nahrají $(Build.ArtifactStagingDirectory) všechny soubory v adresáři. Další informace o seznamu předdefinovaných proměnných, které jsou k dispozici, najdete v tématu Proměnné sestavení a proměnné verze.


assetUploadMode - Režim nahrávání prostředků
string. Nepovinný parametr. Použijte, když action = edit. Povolené hodnoty: delete (Odstraňte existující prostředky), replace (Nahraďte existující prostředky). Výchozí hodnota: delete.

Určuje režim nahrávání prostředků, který chcete použít. delete Pomocí možnosti (Odstranit existující prostředky) nejprve odstraňte všechny existující prostředky ve vydané verzi a pak nahrajte všechny prostředky. replace Pomocí možnosti (Nahradit existující prostředky) můžete nahradit všechny prostředky, které mají stejný název.


isDraft - Verze konceptu
boolean. Nepovinný parametr. Použijte, když action = create || action = edit. Výchozí hodnota: false.

Určuje, jestli má být verze uložena jako koncept (nepublikováno). Pokud false, bude vydaná verze publikována.


isPreRelease - Předběžná verze
boolean. Nepovinný parametr. Použijte, když action = create || action = edit. Výchozí hodnota: false.

Určuje, jestli má být verze označená jako předběžná verze.


addChangeLog - Přidání protokolu změn
boolean. Nepovinný parametr. Použijte, když action = create || action = edit. Výchozí hodnota: true.

Určuje, jestli chcete zahrnout protokol změn. Pokud je tato hodnota nastavená na true, vygeneruje se seznam změn (potvrzení a problémů) mezi aktuální a poslední publikovanou verzí a připojí se k poznámkám k verzi.


changeLogCompareToRelease - Porovnat s
string. Vyžaduje se, když addChangeLog = true. Povolené hodnoty: lastFullRelease (Poslední úplná verze), lastNonDraftRelease (Poslední vydání bez konceptu) lastNonDraftReleaseByTag (Poslední vydání bez konceptu podle značky). Výchozí hodnota: lastFullRelease.

Určuje, s jakou verzí se má porovnat, aby se vygeneroval protokol změn:

  • lastFullRelease (Poslední úplná verze): Porovná aktuální verzi s nejnovější verzí bez konceptu, která není označená jako předběžná verze.
  • lastNonDraftRelease (Poslední verze, která není konceptem): Porovná aktuální verzi s nejnovější verzí, která není konceptem.
  • lastNonDraftReleaseByTag (Poslední verze, která není konceptem podle značky): Porovná aktuální verzi s poslední verzí, která není koncept, která odpovídá zadané značce. Můžete také zadat regex místo přesné značky.

changeLogCompareToReleaseTag - Značka release
string. Vyžaduje se, když changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true.

Určuje regex pro značku vydané verze. Verze odpovídající této značce se použije jako základ pro výpočet protokolu změn.


changeLogType - Typ protokolu změn
string. Vyžaduje se, když addChangeLog = true. Povolené hodnoty: commitBased (na základě potvrzení) issueBased (na základě problému). Výchozí hodnota: commitBased.

Určuje typ protokolu změn. Protokol změn může být založený na potvrzení nebo na základě problémů. Protokol změn založený na potvrzení obsahuje seznam všech potvrzení zahrnutých ve vydané verzi. Protokol změn založený na problémech obsahuje seznam všech problémů nebo žádostí o přijetí změn zahrnutých ve vydané verzi.


changeLogLabels - Kategorie
string. Nepovinný parametr. Použijte, když changeLogType = issueBased && addChangeLog = true. Výchozí hodnota: [{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }].

Kategorizuje změny na základě popisku přidruženého k problému nebo žádosti o přijetí změn. U popisku můžete uvést zobrazovaný název kategorie a stav problému. Mezi příklady popisků patří: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]". V případech, kdy má změna více popisků, má prioritu první zadaný popisek. Pokud chcete zobrazit plochý seznam problémů nebo žádostí o přijetí změn, ponechte toto pole prázdné.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Pomocí této úlohy v kanálu můžete vytvořit, upravit nebo zahodit verzi GitHubu.

Připojení služby GitHub

Tato úloha vyžaduje připojení služby GitHub s oprávněním k zápisu do úložiště GitHub. Připojení služby GitHub můžete vytvořit v projektu Azure Pipelines. Po vytvoření použijte v nastavení této úlohy název připojení služby.

Příklady

Vytvoření verze GitHubu

Následující YAML vytvoří vydání GitHubu při každém spuštění úlohy. Číslo buildu se používá jako verze značky pro vydání. Všechny soubory .exe a README.txt ve složce $(Build.ArtifactStagingDirectory) se nahrají jako prostředky. Ve výchozím nastavení úloha také vygeneruje protokol změn (seznam potvrzení a problémů, které jsou součástí této verze) a publikuje ho jako poznámky k verzi.

- 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

Vytvoření vydané verze můžete také řídit na základě značek úložiště. Následující YAML vytvoří verzi GitHubu jenom v případech, kdy potvrzení, které aktivuje kanál, má přidruženou značku Gitu. Verze GitHubu se vytvoří se stejnou verzí značky jako přidružená značka Git.

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

Můžete také použít úlohu ve spojení s podmínkami úkolu, abyste získali ještě jemnější kontrolu nad tím, kdy se úloha spustí, a tím omezit vytváření vydaných verzí. Například v následujícím YAML se úloha spustí pouze v případě, že kanál aktivuje značka Git odpovídající vzoru 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

Úprava verze GitHubu

Následující YAML aktualizuje stav vydání GitHubu z konceptu na publikováno. Verze, která se má upravit, je určena zadanou značkou.

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

Odstranění verze GitHubu

Následující YAML odstraní verzi GitHubu. Verze, která má být odstraněna, je určena zadanou značkou.

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

Vložené poznámky k verzi

Následující YAML vytvoří verzi GitHubu a přidá vložené poznámky k verzi.

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

Požadavky

Požadavek Popis
Typy kanálů YAML, classic build, verze Classic
Spustí se Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 2.0.0 nebo vyšší
Kategorie úloh Nástroj