Share via


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. 必須です。 許可値: 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を使用します。

正規表現を使用して 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 以上
タスクのカテゴリ ユーティリティ