GitHubRelease@1 - GitHub Release v1 工作
使用此工作來建立、編輯或刪除 GitHub 版本。
語法
# 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
。 必須的。 允許的值:create
、edit
、delete
。 預設值:create
。
指定要執行的發行作業類型。 此工作可以建立、編輯或刪除 GitHub 版本。
target
-
目標
string
。
action = create || action = edit
時為必要項。 預設值:$(Build.SourceVersion)
。
指定您要用來建立 GitHub 版本的認可 SHA 或分支名稱,例如 48b11d8d6e92a22e3e9563a3f643699c16fd6e27
或 main
。 您也可以在此欄位中使用變數,例如 $(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
。
指定 changelog 類型。 變更記錄可以是認可型或以問題為基礎的。 認可型變更記錄會列出版本中包含的所有認可。 以問題為基礎的變更記錄會列出版本中包含的所有問題或提取要求。
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 版本的狀態從 「草稿」更新為「已發佈」。 要編輯的版本是由指定的標記所決定。
- 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 |
需求 | 沒有 |
功能 | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任意 |
Settable 變數 | 任意 |
代理程式版本 | 2.0.0 或更新 |
工作類別 | 效用 |