GitHubRelease@1 - GitHub Release v1 工作

使用此工作來建立、編輯或刪除 GitHub 版本。

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

輸入

gitHubConnection - GitHub 連線 (OAuth 或 PAT)
string. 必要。

指定要用來連線到 GitHub 存放庫的 GitHub 服務連線名稱。 連線必須以 GitHub 使用者的 OAuth 或 GitHub 個人存取權杖為基礎。 如需服務連線的詳細資訊,請參閱 管理服務連線


repositoryName - 存儲 庫
string. 必要。 預設值:$(Build.Repository.Name)

指定要在其中建立、編輯或刪除 GitHub 版本的 GitHub 存放庫名稱。


action - 行動
string. 必要。 允許值:createeditdelete。 預設值:create

指定要執行的發行作業類型。 此工作可以建立、編輯或刪除 GitHub 版本。


target - 目標
string. 當 action = create || action = edit 時為必要。 預設值:$(Build.SourceVersion)

指定您想要用來建立 GitHub 版本的認可 SHA,例如 48b11d8d6e92a22e3e9563a3f643699c16fd6e27 。 您也可以在此欄位中使用變數,例如 $(myCommitSHA)


tagSource - 標記來源
string. 當 action = create 時為必要。 允許的值: gitTag (Git 標籤) , userSpecifiedTag (使用者指定的標籤) 。 預設值:gitTag

指定您要用於發行建立的標記。 選項 gitTag 會自動使用與 Git 認可相關聯的標記。 userSpecifiedTag使用 選項手動提供標籤。


tagPattern - 標籤模式
string. 選擇性。 使用 時機 tagSource = gitTag

使用 RegEx 指定 Git 標籤模式,例如 release-v1.* 。 GitHub 版本只會針對具有相符 Git 標籤的認可建立。


tag - 標記
string. 當 action = edit || action = delete || tagSource = userSpecifiedTag 時為必要。

指定建立、編輯或刪除發行時要使用的標記。 您也可以在此欄位中使用變數,例如 $(myTagName)


title - 發行標題
string. 選擇性。 使用 時機 action = create || action = edit

指定 GitHub 版本的標題。 如果保留空白,標籤將會當做發行標題使用。


releaseNotesSource - 版本資訊來源
string. 選擇性。 使用 時機 action = create || action = edit 。 允許的值: filePath (版本資訊檔案) , inline (內嵌版本資訊) 。 預設值:filePath

指定 GitHub 版本的描述。 filePath使用 (版本資訊檔案) 選項,即可使用檔案內容作為版本資訊。 inline使用 (內嵌版本資訊) 選項手動輸入版本資訊


releaseNotesFilePath - 版本資訊檔案路徑
string. 選擇性。 使用 時機 releaseNotesSource = filePath

指定包含版本資訊的檔案。


releaseNotesInline - 版本資訊
string. 選擇性。 使用 時機 releaseNotesSource = inline

指定版本資訊。 支援 Markdown。


assets - 資產
string. 選擇性。 使用 時機 action = create || action = edit 。 預設值:$(Build.ArtifactStagingDirectory)/*

指定要上傳為發行資產的檔案。 您可以使用萬用字元來指定多個檔案。 例如,使用 $(Build.ArtifactStagingDirectory)/*.zip 或 用於 $(System.DefaultWorkingDirectory)/*.zip 發行管線。

您也可以指定多個模式,每行一個模式。 根據預設,目錄中的所有檔案 $(Build.ArtifactStagingDirectory) 都會上傳。 如需可用之預先定義變數清單的詳細資訊,請參閱 建置變數發行變數


assetUploadMode - 資產上傳模式
string. 選擇性。 使用 時機 action = edit 。 允許的值: delete (刪除現有資產) , replace (取代現有的資產) 。 預設值:delete

指定您想要使用的資產上傳模式。 delete使用 (刪除現有的資產) 選項,先刪除發行中的任何現有資產,然後上傳所有資產。 replace使用 (取代現有資產) 選項來取代任何具有相同名稱的資產。


isDraft - 草稿版本
boolean. 選擇性。 使用 時機 action = create || action = edit 。 預設值:false

指出是否應該將發行儲存為草稿 (未發佈) 。 如果 false 為 ,則會發行發行。


isPreRelease - 發行前版本
boolean. 選擇性。 使用 時機 action = create || action = edit 。 預設值:false

指出版本是否應該標示為發行前版本。


addChangeLog - 新增變更記錄
boolean. 選擇性。 使用 時機 action = create || action = edit 。 預設值:true

指定是否要包含變更記錄。 如果設定為 true ,則會在目前版本與上次發行版本本之間) 認可和問題 (變更清單,並附加至版本資訊。


changeLogCompareToRelease - 與 比較
string. 當 addChangeLog = true 時為必要。 允許的值: lastFullRelease (上次完整發行) 、 lastNonDraftRelease (上次非草稿版本) , lastNonDraftReleaseByTag (依標籤) 的最後一個非草稿發行。 預設值:lastFullRelease

指出要與 哪一個版本進行比較以產生變更記錄:

  • lastFullRelease (上次完整版本) :比較目前版本與未標示為發行前版本的最新非草稿版本。
  • lastNonDraftRelease (上次非草稿版本) :比較目前版本與最新的非草稿版本。
  • lastNonDraftReleaseByTag (依標籤) 的最後一個非草稿發行:比較目前的版本與符合指定標籤的最後一個非草稿版本。 您也可以指定 RegEx,而不是確切的標籤。

changeLogCompareToReleaseTag - 發行標籤
string. 當 changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true 時為必要。

指定發行標記的 RegEx。 比對此標記的發行將作為變更記錄計算的基礎。


changeLogType - Changelog 類型
string. 當 addChangeLog = true 時為必要。 允許的值: commitBased (以認可為基礎的) , issueBased (以問題為基礎的) 。 預設值:commitBased

指定變更記錄類型。 變更記錄可以是認可型或問題型。 認可型變更記錄會列出版本中包含的所有認可。 以問題為基礎的變更記錄會列出發行中包含的所有問題或提取要求) (PR。


changeLogLabels - 類別
string. 選擇性。 使用 時 changeLogType = issueBased && addChangeLog = true 。 預設值:[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]

根據與問題或 PR 相關聯的標籤來分類變更。 針對標籤,您可以提及類別和問題狀態的顯示名稱。 標籤的範例包括: "[{ "label" : "bug", "displayName" : "Bugs", "state" : "closed" }]" 。 如果變更具有多個標籤,則第一個指定的標籤會優先使用。 將此欄位保留空白,以查看問題或 PR 的一般清單。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制選項和一般工作屬性

輸出變數

無。

備註

在您的管線中使用這項工作來建立、編輯或捨棄 GitHub 版本

GitHub 服務連線

這項工作需要具有 GitHub 存放庫寫入許可權的GitHub 服務連線。 您可以在 Azure Pipelines 專案中建立 GitHub 服務連線。 建立之後,請在這項工作的設定中使用服務連線的名稱。

範例

建立 GitHub 版本

下列 YAML 會在每次工作執行時建立 GitHub 版本。 組建編號會當做發行的標記版本使用。 $ (Build.ArtifactStagingDirectory) 資料夾中的所有.exe檔案和README.txt檔案都會上傳為資產。 根據預設,工作也會產生變更記錄檔 (屬於此版本一部分的認可和問題清單) ,並將其發佈為版本資訊。

- 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

您也可以根據存放庫標記控制發行的建立。 下列 YAML 只有在觸發管線的認可具有與其相關聯的 Git 標籤時,才會建立 GitHub 版本。 GitHub 版本是以與相關聯 Git 標籤相同的標籤版本來建立。

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

您也可以將工作與工作條件搭配使用,以更精細地控制工作執行時,藉此限制發行的建立。 例如,在下列 YAML 中,只有在管線是由符合模式 'refs/tags/release-v*' 的 Git 標籤觸發時,才會執行工作。

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

下列 YAML 會將 GitHub 版本的狀態從 'draft' 更新為 'published'。 要編輯的版本是由指定的標籤所決定。

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

刪除 GitHub 版本

下列 YAML 會刪除 GitHub 版本。 要刪除的版本是由指定的標籤所決定。

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

內嵌版本資訊

下列 YAML 會建立 GitHub 版本,並新增內嵌版本資訊。

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

規格需求

需求 描述
管線類型 YAML、傳統組建、傳統版本
在 上執行 Agent、DeploymentGroup
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任意
可設定變數 任意
代理程式版本 2.0.0 或更新版本
工作類別 公用程式