실행 또는 빌드 번호 구성

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

파이프라인 실행 번호 매기기 방법을 사용자 지정할 수 있습니다. 실행 번호의 기본값은 .입니다 $(Date:yyyyMMdd).$(Rev:r).

Azure DevOps $(Rev:r) 에서 빌드 번호 필드에서만 작동하는 특수 변수 형식입니다. 빌드가 완료되면 빌드 번호의 다른 항목이 변경되지 Rev 않은 경우 정수 값이 하나씩 증가합니다.

$(Rev:r) 는 빌드 번호의 일부를 변경할 때 다시 설정됩니다. 예를 들어 빌드 번호 형식을 다음과 같이 $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)구성한 경우 다음 날 날짜가 변경되면 빌드 번호가 다시 설정됩니다. 빌드 번호가 MyBuild_20230621.1있으면 그 날의 다음 빌드 번호입니다 MyBuild_20230621.2. 다음 날 빌드 번호는 .입니다 MyBuild_20230622.1.

빌드 번호 형식이 1.0.$(Rev:r)면 숫자의 일부를 변경할 때 빌드 번호가 다시 설정됩니다 1.0.1 . 예를 들어 마지막 빌드 번호가 버전 1.0.3변경을 나타내도록 1.1.$(Rev:r) 빌드 번호를 변경한 경우 다음 빌드 번호는 다음과 같습니다 1.1.1.

YAML에서 이 속성은 호출 name 되며 파이프라인의 루트 수준에 있어야 합니다.

참고 항목

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에서 아직 사용할 수 없습니다.

예시

이때 실행이 시작됩니다.

  • 프로젝트 이름: Fabrikam

  • 파이프라인 이름: CIBuild

  • 분기: main

  • 빌드 ID/실행 ID: 752

  • 날짜: 2019년 5월 5일.

  • 시간: 오후 9:07:03

  • 오늘 일찍 한 번의 실행이 완료되었습니다.

이 빌드 번호 형식을 지정하는 경우:

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

그런 다음 이 날의 두 번째 실행 이름은 Fabrikam_CIBuild_기본_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 등)

$(Rev:r)를 사용하여 완료된 모든 빌드에 고유한 이름이 있는지 확인합니다. 빌드가 시작되면 빌드 번호의 다른 항목이 변경되지 않은 경우 Rev 정수 값이 1씩 증가합니다.

숫자에서 접두사 0을 표시하려면 'r' 문자를 더 추가할 수 있습니다. 예를 들어 Rev 번호를 01, 02 등으로 시작하려면 $(Rev:rr)를 지정합니다. 버전 번호 매기기 체계의 일부로 0 패딩 Rev를 사용하는 경우 NuGet 패키지와 같은 일부 파이프라인 작업 또는 인기 있는 도구는 선행 0을 제거하여 생성된 아티팩트에서 버전 번호가 일치하지 않습니다.
$(Date:yyyyMMdd) 20090824

$(Date:MMddyy)와 같은 다른 날짜 형식을 지정할 수 있습니다.
$(Seconds) 3
$(SourceBranchName) main
$(TeamProject) Fabrikam
$(Year:yy) 09
$(Year:yyyy) 2009

variables

숫자에서 범위가 "모두"인 사용자 정의 및 미리 정의된 변수를 사용할 수도 있습니다. 예를 들어 정의 My.Variable한 경우 다음 숫자 형식을 지정할 수 있습니다.

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

처음 네 개의 변수가 미리 정의됩니다. My.Variable는 변수 탭에서 사용자가 정의합니다.

식을 사용하여 빌드 번호를 설정하는 경우 식이 계산될 때 값이 설정되지 않으므로 일부 토큰을 사용할 수 없습니다. 이러한 토큰에는 $(Build.BuildId), $(Build.BuildURL)$(Build.BuildNumber).

FAQ

실행 번호는 얼마나 크고 어떤 문자를 사용할 수 있나요?

실행은 최대 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:
  - name: why
    ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
      value: pr
    ${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
      value: manual
    ${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
      value: indivci
    ${{ else }}:
      value: other

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

pool:
  vmImage: 'ubuntu-latest'

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