다음을 통해 공유


실행 및 빌드 번호

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

이 문서에서는 Azure Pipelines 빌드 번호 및 실행 번호를 구성하는 방법과 파이프라인에서 사용자 지정하는 방법을 설명합니다.

실행 번호는 파이프라인 또는 빌드의 특정 실행을 식별하는 데 사용됩니다. 빌드 번호는 실행 번호와 동의어입니다.

YAML 파이프라인에서 빌드 이름을 지정하지 않거나 클래식 파이프라인에서 이름 필드를 비워 두면 실행은 고유한 정수를 해당 이름으로 가져옵니다. 실행에 팀에 의미 있는 더 유용한 이름을 제공할 수 있습니다. 빌드 이름에 토큰, 변수 및 밑줄 문자의 조합을 사용할 수 있습니다.

YAML 파이프라인에서 빌드 이름 속성이 호출 name 되고 파이프라인의 루트 수준에 있어야 합니다. YAML 파일의 루트 수준에서 지정된 항목은 파이프라인 속성입니다.

참고 항목

이 속성은 name 템플릿 파일에서 작동하지 않습니다.

다음 예제 코드는 project_def_master_20240828.1과 같은 사용자 지정된 빌드 번호를 출력합니다.

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

steps:
  - script: echo '$(Build.BuildNumber)'

실행 번호

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

$(Rev:r)1 빌드 번호의 다른 부분이 변경되는 경우로 다시 설정됩니다. 예를 들어 빌드 번호 형식을 구성 $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)하면 날짜가 변경되면 빌드 번호가 다시 설정됩니다.

이전 빌드 번호가 이면 MyBuild_20230621.1그 날의 다음 빌드 번호는 .입니다 MyBuild_20230621.2. 다음 날의 첫 번째 빌드 번호는 .입니다 MyBuild_20230622.1.

$(Rev:r) 또한 버전 변경을 나타내기 위해 1 빌드 번호를 변경하는 경우로 다시 설정됩니다. 예를 들어 빌드 형식이 1.0.$(Rev:r) 마지막 빌드 번호인 1.0.3경우 빌드 번호를 1.1.$(Rev:r)로 변경하면 다음 빌드 번호가 됩니다 1.1.1.

예시

빌드 실행에 대해 다음 데이터를 고려합니다.

  • 프로젝트 이름: Fabrikam
  • 파이프라인 이름: CIBuild
  • 분기: main
  • 빌드 ID/실행 ID: 752
  • 날짜: 2024년 5월 6일
  • 시간: 오후 9:07:03
  • 오늘 일찍 한 번의 실행이 완료되었습니다.

다음 빌드 번호 형식을 지정하면 2024년 5월 6일에 두 번째 실행 이름이 Fabrikam_CIBuild_main_20240506.2로 지정됩니다.

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

토큰

다음 표에서는 이전 예제에 따라 각 토큰이 확인되는 방법을 보여 줍니다. 이러한 토큰을 사용하여 실행 번호를 정의할 수 있습니다. 파이프라인의 다른 곳에서는 작동하지 않습니다.

토큰 예제 값 주의
$(Build.DefinitionName) CIBuild 파이프라인 이름에 잘못된 문자나 공백 문자를 포함할 수 없습니다.
$(Build.BuildId) 752 $(Build.BuildId) 는 Azure DevOps 조직 전체에서 고유한 실행 ID라고도 하는 변경할 수 없는 내부 ID입니다.
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 세 번째 매일 실행은 등등입니다 3. 완료된 모든 빌드에 고유한 이름이 있는지 확인하는 데 사용합니다 $(Rev:r) .
$(Date:yyyyMMdd) 20240506 와 같은 $(Date:MMddyy)다른 날짜 형식을 지정할 수 있습니다.
$(Seconds) 3
$(SourceBranchName) main
$(TeamProject) Fabrikam
$(Year:yy) 24
$(Year:yyyy) 2024

Important

실행 번호에 접두사 0을 표시하려면 토큰에 문자를 Revr 추가할 수 있습니다. 예를 들어 숫자를 시작하는 등으로 0102시작할지 지정 $(Rev:rr) Rev 합니다.

버전 번호 매기기 체계의 일부로 0 패딩 Rev 을 사용하는 경우 NuGet 패키지와 같은 일부 파이프라인 작업 또는 인기 있는 도구는 선행 0을 제거합니다. 이 동작으로 인해 생성된 아티팩트에서 버전 번호가 일치하지 않습니다.

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

변수

빌드 번호에 사용자 정의 및 미리 정의된 변수를 사용할 수 있습니다. 예를 들어 정의하는 My.Variable경우 다음 숫자 형식을 지정할 수 있습니다.

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

앞의 예제에서는 처음 네 개의 변수가 미리 정의됩니다. 사용자 변수를 정의하는 방법에 대한 자세한 내용은 파이프라인에서 변수 설정을 참조 하세요.

FAQ

실행 번호의 크기와 사용할 수 있는 문자는 무엇인가요?

실행 번호는 최대 255자까지 가능합니다. 문자", ,/, ,:, |><?@'또는 *문자를 사용할 수 없으며 숫자를 .종료할 수 없습니다.

빌드 번호 시간 값이 표현되는 표준 시간대는 무엇인가요?

표준 시간대는 UTC입니다.

표준 시간대는 애플리케이션 계층 서버를 실행하는 컴퓨터 운영 체제의 표준 시간대와 동일합니다.

조건에 따라 빌드 번호를 동적으로 설정하기 위해 어떻게 해야 하나요?

변수를 실행 번호의 일부로 사용할 수 있습니다. 다음 예제에서는 변수 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)'

스크립트 내에서 실행 번호 변수를 참조하려면 어떻게 해야 하나요?

실행 번호를 포함하는 새 변수를 정의하거나 실행 번호를 직접 호출할 수 있습니다. 다음 예제 $(MyRunNumber) 에서는 실행 번호를 포함하는 새 변수입니다. 또는 을 사용하여 MyRunNumber $(Build.BuildNumber)실행 번호 변수를 호출할 수 있습니다.

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

steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)

변수 정의