実行番号またはビルド番号を構成する

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

注意

Microsoft Team Foundation Server (TFS) 2018 以前のバージョンでは、ビルドとリリースの "パイプライン" は "定義"、"実行" は "ビルド"、"サービス接続" は "サービス エンドポイント"、"ステージ" は "環境"、"ジョブ" は "フェーズ" と呼ばれます。

パイプラインの実行の番号付け方法をカスタマイズできます。 実行番号の既定値は です $(Date:yyyyMMdd).$(Rev:r)

YAML では、このプロパティが呼び出 name され、パイプラインのルート レベルにあります。 指定しない場合、実行には一意の整数が名前として指定されます。 実行には、チームにとって意味のあるより便利な名前を付けできます。 トークン、変数、アンダースコア文字の組み合わせを使用できます。

name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)

steps:
  - script: echo '$(Build.BuildNumber)' # outputs customized build number like project_def_master_20200828.1

YAML ビルドは TFS ではまだ使用できません。

実行が開始された時点:

  • Project名: Fabrikam

  • パイプライン名: CIBuild

  • Branch: master

  • ビルド ID/実行 ID: 752

  • 日付: 2019 年 5 月 5 日。

  • 時刻: 午後 9:07:03。

  • 1 回の実行が今日より前に完了しました。

このビルド番号の形式を指定する場合:

$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)

その後、この日の 2 回目の実行の名前は Fabrikam_CIBuild_master_20190505.2 です。

トークン

次の表は、前の例に基づいて各トークンがどのように解決されるのか示しています。 これらのトークンは、実行番号を定義する場合にのみ使用できます。パイプライン内の他の場所では機能しません。

トークン 置換値の例
$(Build.DefinitionName) CIBuild

注: パイプライン名に無効な文字または空白文字を含めることはできません。
$(Build.BuildId) 752

$(Build.BuildId) は、実行 ID とも呼ばれる内部変更できない ID です。 これは組織全体で一意です。
$(DayOfMonth) 5
$(DayOfYear) 217
$(Hours) 21
$(Minutes) 7
$(Month) 8
$(Rev:r) 2 (3 回目の実行は 3 など)

$(Rev:r) を使用して、完了したビルドごとに一意の名前を持つ必要があります。 ビルドが開始されると、ビルド番号の他の値が変更されなければ、Rev 整数値は 1 ずつインクリメントされます。

数値にプレフィックス 0 を表示する場合は、' r' 文字を追加 できます。 たとえば、Rev 番号を 01、02 で始める場合は、$ (Rev:rr) を指定します。 バージョン番号付けスキームの一部として 0 パディング Rev を使用する場合は、一部のパイプライン タスクまたは一般的なツール (NuGet パッケージなど) によって先頭のゼロが削除され、生成される成果物のバージョン番号の不一致が発生する点に注意してください。
$(Date:yyyyMMdd) 20090824

$(Date:MMddyy) などの他の日付形式を指定できます
$(Seconds) 3
$(SourceBranchName) master
$(TeamProject) Fabrikam
$(Year:yy) 09
$(Year:yyyy) 2009

変数

数値に "All" のスコープを持つユーザー定義変数と定義済み変数を使用できます。 たとえば、 を定義している場合は My.Variable、次の数値形式を指定できます。

$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)

最初の 4 つの変数は定義済みです。 My.Variable は、[変数] タブで ユーザーが定義します

式を使用してビルド番号を設定する場合、式の評価時に値が設定されないので、一部のトークンを使用することはできません。 これらのトークンには、、 $(Build.BuildId)、および が $(Build.BuildURL)含まれます $(Build.BuildNumber)

よく寄せられる質問

実行番号はどのくらい大きいか。

実行は最大 255 文字です。

ビルド番号の時刻値は、どのタイム ゾーンで表されますか?

タイム ゾーンは UTC です。

タイム ゾーンは、アプリケーション層サーバーを実行しているマシンのオペレーティング システムのタイム ゾーンと同じです。

スクリプト内で実行番号変数を参照する方法

実行番号変数は、 を使用して呼び出できます $(Build.BuildNumber)。 実行番号を含む新しい変数を定義するか、実行番号を直接呼び出します。 この例では、 $(MyRunNumber) は実行番号を含む新しい変数です。

# Set MyRunNumber
variables: 
  MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'


steps:
- script: echo $(MyRunNumber) # display MyRunNumber
- script: echo $(Build.BuildNumber) #display Run Number

条件を使用してビルド番号を動的に設定する方法

変数は、実行番号の一部として使用できます。 この例では、変数は why に応じて変更され Build.Reason 、実行番号の一部として使用されます。

variables:
  ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
    why: pr
  ${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
    why: manual
  ${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
    why: indivci 
  ${{ else }}:
    why: other

name: $(TeamProject)_$(SourceBranchName)_$(why)_$(Date:yyyyMMdd)$(Rev:.r)

pool:
  vmImage: 'ubuntu-latest'

steps:
- script: echo '$(Build.BuildNumber)' ## output run number