次の方法で共有


GitHubRelease@1 - GitHub リリース 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 -
stringaction = create || action = editする場合に必要です。 既定値: $(Build.SourceVersion)

GitHub リリースの作成に使用するコミット SHA またはブランチ名 ( 48b11d8d6e92a22e3e9563a3f643699c16fd6e27main など) を指定します。 このフィールドでは、$(myCommitSHA)などの変数を使用することもできます。


tagSource - タグ ソース
stringaction = createする場合に必要です。 使用できる値: gitTag (Git タグ)、userSpecifiedTag (ユーザー指定タグ)。 既定値: gitTag

リリースの作成に使用するタグを指定します。 gitTag オプションでは、Git コミットに関連付けられているタグが自動的に使用されます。 userSpecifiedTagオプションを使用して、タグを手動で指定します。


tagPattern - タグ パターンの
string。 任意。 tagSource = gitTagするときに使用します。

正規表現を使用して Git タグ パターンを指定します (例: release-v1.*)。 GitHub リリースは、一致する Git タグを持つコミットに対してのみ作成されます。


tag - タグの
stringaction = 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 - Draft リリース
boolean。 任意。 action = create || action = editするときに使用します。 既定値: false

リリースを下書き (未公開) として保存するかどうかを示します。 false場合、リリースが公開されます。


isPreRelease - プレリリース
boolean。 任意。 action = create || action = editするときに使用します。 既定値: false

リリースをプレリリースとしてマークするかどうかを示します。


addChangeLog - 変更ログ の追加
boolean。 任意。 action = create || action = editするときに使用します。 既定値: true

変更ログを含めるかどうかを指定します。 trueに設定すると、現在のリリースと最後に公開されたリリースの間の変更 (コミットと問題) の一覧が生成され、リリース ノートに追加されます。


changeLogCompareToRelease - との比較
stringaddChangeLog = trueする場合に必要です。 使用できる値: lastFullRelease (最終完全リリース)、lastNonDraftRelease (ドラフト以外の最終リリース)、lastNonDraftReleaseByTag (タグ別の最後のドラフト以外のリリース)。 既定値: lastFullRelease

変更ログを生成するために比較するリリースを示します。

  • lastFullRelease (最終完全リリース): 現在のリリースと、プレリリースとしてマークされていない最新のドラフト以外のリリースを比較します。
  • lastNonDraftRelease (ドラフト以外の最終リリース): 現在のリリースと最新のドラフト以外のリリースを比較します。
  • lastNonDraftReleaseByTag (タグ別の最終ドラフト以外のリリース): 現在のリリースと、指定したタグと一致する最後のドラフト以外のリリースを比較します。 正確なタグの代わりに正規表現を指定することもできます。

リリース タグchangeLogCompareToReleaseTag -
stringchangeLogCompareToRelease = lastNonDraftReleaseByTag && addChangeLog = trueする場合に必要です。

リリースタグの正規表現を指定します。 このタグに一致するリリースは、changelog の計算のベースとして使用されます。


changeLogType - 変更ログの種類の
stringaddChangeLog = 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) フォルダー内のすべての 1 .exe ファイルと README.txt ファイルがアセットとしてアップロードされます。 デフォルトでは、タスクは変更ログ (このリリースの一部であるコミットと問題のリスト) も生成し、リリース ノートとして公開します。

- task: GithubRelease@1 
  displayName: 'Create GitHub Release'      
  inputs:
    gitHubConnection: zenithworks
    repositoryName: zenithworks/javaAppWithMaven
    tagSource: gitTag
    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
の需要 無し
機能 このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 [任意]
設定可能な変数 [任意]
エージェントのバージョン 2.0.0 以上
タスク カテゴリ 効用