2016-12-07 7 views
4

성공적인 빌드 후에 레이블 형식을 $(GitVersion.NuGetVersion)으로 구성하면 결과 태그는 해당 변수의 실제 확장 된 값이 아닌 $(GitVersion.NuGetVersion)으로 설정됩니다.

빌드 출력 로깅에는 두 개의 섹션/계획 : 빌드 및 빌드 완료가 있습니다.

아마도 빌드 에이전트가 두 번째 섹션/계획으로 이동하면 모든 가변 컨텍스트/상태가 손실됩니다.

완성 된 빌드 섹션에서 GitVersion 변수의 컨텍스트를 잃어버린 경우 어떻게 결과 GitVersion으로 소스에 태그를 지정해야합니까?

https://github.com/Microsoft/vsts-agent/issues/716

+0

태깅이의 맥락에서 설정하는 서버 변수에 이루어집니다 에이전트는 최종 결정에서 사용할 수 없습니다. –

답변

0

특정 단계 :

  1. 설정 VSTS 프로젝트/저장소/사전 REQS 빌드 : (완성도) 태그에 대한
    https://www.visualstudio.com/en-us/docs/build/scripts/git-commands#enable-scripts-to-run-git-commands
  2. 망할 놈의 문서를 :
    https://git-scm.com/book/en/v2/Git-Basics-Tagging

2 개의 명령 줄 작업이 추가되었습니다 (배치 작업은 도구와 라 자세 히 아이디어) :git :

  1. 인수 :tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
  2. 인수 :push origin $(Build.BuildNumber)
+0

답변으로 표시 할 수 있습니다. –

2

은 내가 issue on GitHub에서 귀하의 질문에 대답 : 우리는 이것에 대해 GitVersion 작업의 내부에서 할 수있는 일이 없다고 생각

을 한 VSTS가 제공하지 않는 적절한 API. GitVersion은 현재 ##vso[task.setvariable]value command을 사용하여 변수를 정의합니다. 변수는 작업 컨텍스트에 명시 적으로 정의되어 있으므로 이후 작업에는 사용할 수 있지만 컨텍스트 외부에는 사용할 수 없습니다.

특수한 경우는 우리가 사용하고있는 특별한 명령이있는 빌드 번호입니다. ##vso[build.updatebuildnumber]build number

태그를 추가하는 추가 작업을 추가 할 수 있습니다.이 작업은 작업이 동일한 컨텍스트에 있고 따라서 변수에 액세스하므로 작동합니다. 내 원하는 결과를 달성하기 위해

+0

감사합니다. 고맙습니다. – JoeBrockhaus