Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
고유한 실행 번호 또는 빌드 번호는 Azure Pipelines 파이프라인 또는 빌드의 각 실행을 식별합니다. 이 문서에서는 이 숫자의 구조와 팀에 더 유용하거나 의미 있는 것으로 사용자 지정하는 방법을 설명합니다.
YAML 파이프라인에서 빌드 이름을 지정하지 않거나 클래식 파이프라인에서 이름 또는 빌드 번호 형식 필드를 비워 두면 각 실행은 고유한 정수를 해당 이름으로 가져옵니다. 빌드 이름은 다른 문자, 토큰 및 변수를 사용할 수 있습니다. 명명 패턴, 특수 토큰, 미리 정의된 변수 또는 사용자 정의 변수를 사용하여 실행 및 빌드 번호를 사용자 지정할 수 있습니다.
빌드 번호 구성
클래식 파이프라인에서는 파이프라인 정의의 옵션에서 빌드 번호 형식을 사용자 지정할 수 있습니다. YAML 파이프라인에서는 YAML 파일의 name 수준에서 속성을 사용하여 실행 번호 형식을 사용자 지정할 수 있습니다. 템플릿 또는 단계에서는 name 속성이 지원되지 않습니다.
다음 예제에서는 MyProject_MyBuild_main_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입니다.
다음 빌드 번호 형식은 2024년 5월 6일에 두 번째 실행을 위해 이름 Fabrikam_CIBuild_main_20240506.2를 만듭니다.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
빌드 번호 토큰은 다음과 같이 해석됩니다.
- 프로젝트 이름: Fabrikam
- 빌드 정의 이름: CIBuild
- 브랜치: main
- 날짜: 2024년 5월 6일
- 해당 날짜의 실행 번호: 2
런 번호 식별자
다음 표에서는 실행 번호 토큰이 해결되는 방법을 보여 줍니다. 이러한 토큰을 사용하여 실행 번호를 정의할 수 있습니다. 파이프라인의 다른 곳에서는 작동하지 않습니다.
| 토큰 | 예제 값 | 노트 |
|---|---|---|
$(Build.DefinitionName) |
CIBuild | 유효하지 않거나 공백 문자를 포함할 수 없는 빌드 이름입니다. |
$(Build.BuildId) |
752 | Azure DevOps 조직 내에서 변경할 수 없는 고유한 내부 ID는 Run ID라고도 불립니다. |
$(Date:yyyyMMdd) |
20240506 | 날짜 형식입니다. 다른 날짜 형식(예: $(Date:MMddyy).)을 지정할 수도 있습니다. |
$(DayOfMonth) |
6 | |
$(DayOfYear) |
126 | |
$(Hours) |
21 | |
$(Minutes) |
7 | |
$(Month) |
5 | |
$(Rev:r) |
2 | 해당 날짜의 실행 횟수에서의 위치. 완료된 모든 빌드에 고유한 이름이 있는지 확인하는 데 사용합니다 $(Rev:r) . |
$(Seconds) |
3 | |
$(SourceBranchName) |
메인 | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
24 | |
$(Year:yyyy) |
2024 |
중요한
실행 번호에 접두사 0을 표시하려면 토큰에 문자를 r 더 Rev 추가할 수 있습니다. 예를 들어, $(Rev:rr)를 지정하여 Rev 숫자가 01, 02 등으로 시작하도록 할 수 있습니다.
그러나 버전 번호 매기기 체계의 일부로 0 패딩 Rev 을 사용하는 경우 일부 파이프라인 작업 또는 NuGet 패키지와 같은 인기 있는 도구는 선행 0을 제거합니다. 이 동작으로 인해 빌드에서 생성하는 아티팩트에서 버전 번호가 일치하지 않습니다.
실행 번호의 식
식을 사용하여 실행 번호를 설정하는 경우 파이프라인 식이 계산될 때 값이 아직 설정되지 않았기 때문에 , $(Build.BuildId)또는 $(Build.BuildUri) 토큰을 사용할 $(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)'
스크립트 내에서 실행 번호 변수를 참조하려면 어떻게 해야 하나요?
스크립트에서와 같이 $(Build.BuildNumber) 실행 번호를 직접 참조하거나 숫자를 포함하는 사용자 지정 변수를 만들 수 있습니다. 다음은 그 예입니다.
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)