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
)。 このフィールドでは、 などの $(myCommitSHA)
変数を使用することもできます。
tagSource
- タグ ソース
string
. action = create
の場合に必要です。 使用できる値: gitTag
(Git タグ)、 userSpecifiedTag
(ユーザー指定タグ)。 既定値: gitTag
。
リリースの作成に使用するタグを指定します。 オプションでは gitTag
、Git コミットに関連付けられているタグが自動的に使用されます。 タグを userSpecifiedTag
手動で指定するには、 オプションを使用します。
tagPattern
- タグ パターン
string
. 省略可能。 の場合は tagSource = gitTag
を使用します。
正規表現を使用して 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
します。
複数のパターンを 1 行に 1 つずつ指定することもできます。 既定では、$(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
(タグ別の最終ドラフト以外のリリース): 現在のリリースと、指定したタグと一致する最後のドラフト以外のリリースを比較します。 正確なタグの代わりに正規表現を指定することもできます。
changeLogCompareToReleaseTag
- リリース タグ
string
. changeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = true
の場合に必要です。
リリース タグの正規表現を指定します。 このタグに一致するリリースは、変更ログ計算のベースとして使用されます。
changeLogType
- 変更ログの種類
string
. addChangeLog = true
の場合に必要です。 使用できる値: commitBased
(コミット ベース)、 issueBased
(問題ベース)。 既定値: commitBased
。
変更ログの種類を指定します。 変更ログは、コミット ベースまたは問題ベースにすることができます。 コミット ベースの変更ログには、リリースに含まれるすべてのコミットが一覧表示されます。 問題ベースの変更ログには、リリースに含まれるすべての issue または pull request (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、クラシック ビルド、クラシック リリース |
上で実行 | エージェント、DeploymentGroup |
確認要求 | なし |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | 2.0.0 以上 |
タスクのカテゴリ | ユーティリティ |