Azure DevOps 서비스 | Azure DevOps 서버 2022 - Azure DevOps Server 2019
Azure Pipelines는 각 파이프라인 실행에 고유한 실행 번호(빌드 번호라고도 함)를 할당합니다. 변수, 토큰 및 명명 패턴을 사용하여 이러한 숫자를 사용자 지정하여 팀에 더 의미 있는 숫자를 만들 수 있습니다.
실행 번호는 파이프라인 또는 빌드의 특정 실행을 식별하는 데 사용됩니다. 빌드 번호는 실행 번호와 동의어입니다.
YAML 파이프라인에서 빌드 이름을 지정하지 않거나 클래식 파이프라인에서 이름 필드를 비워 두면 실행은 고유한 정수를 해당 이름으로 가져옵니다. 실행에 팀에 의미 있는 더 유용한 이름을 제공할 수 있습니다. 빌드 이름에 토큰, 변수 및 밑줄 문자의 조합을 사용할 수 있습니다.
속성을 사용하여 name
파이프라인의 루트 수준에서만 실행 번호를 사용자 지정할 수 있습니다.
name
파이프라인 수준에서 속성을 설정합니다. 템플릿 또는 단계에서는 name
속성이 지원되지 않습니다.
다음 코드는 다음과 같은 project_def_main_202408281
사용자 지정 실행 번호 형식을 설정합니다.
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) |
메인 | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
24 | |
$(Year:yyyy) |
2024 |
중요한
실행 번호에 접두사 0을 표시하려면 토큰에 문자를 r
더 Rev
추가할 수 있습니다. 예를 들어, $(Rev:rr)
를 지정하여 Rev
숫자가 01
, 02
등으로 시작하도록 할 수 있습니다.
버전 번호 매기기 체계의 일부로 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)'
스크립트 내에서 실행 번호 변수를 참조하려면 어떻게 해야 하나요?
스크립트에서와 같이 $(Build.BuildNumber)
실행 번호를 직접 참조하거나 이를 포함하는 사용자 지정 변수를 만들 수 있습니다. 다음은 그 예입니다.
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)