2016-07-05 1 views
3

VSTS를 사용하는 CI 환경에서 커밋 주석을 가져와 텍스트 파일로 설정하려고합니다. 이 enter image description hereVSTS/TFS 빌드에서 Git 커밋 ID 및 메시지를 검색하는 방법은 무엇입니까?

아이디어는 GIT가 이슈 폴더에 저장된 텍스트 파일에 주석을 커밋 복사하는 것입니다 : 여기

내 빌드 단계입니다. 그런 다음 HockeyApp SDK를 사용하여 커밋 메모를 relase note에 설정합니다.

명령 줄 작업으로 파일을 쉽게 복사 할 수 있지만 주석을 검색하는 방법을 모르겠습니다.

답변

3

빌드 중에 환경 변수 $(Build.SOURCEVERSIONMESSAGE)이 설정됩니다. 작업 입력에서 직접 $(build.SOURCEVERSIONMESSAGE)을 사용하여 액세스 할 수 있습니다.

powershell 스크립트 또는 inline powershell 스크립트로 액세스하려는 경우. 환경 변수를 통해 액세스 할 수 있습니다. 즉, Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE

다음 스크립트는 커밋 메시지와 함께 binaries 폴더에 commit.txt라는 파일을 새로 만듭니다. 인라인 유형이있는 Powershell 태스크를 사용하여 스크립트를 실행하십시오.

$message = (Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE) 

$path = (Get-Item Env:\BUILD_BINARIESDIRECTORY).Value + '\commit.txt' 

echo $message > $path 

enter image description here

+0

귀하의 예에 따르면, 나는 명령 행을 시도했다. 도구 ='echo'. 인수 =' "$ (Build.SOURCEVERSIONMESSAGE)"> "$ (build.binariesdirectory) \ $ (BuildConfiguration) \ drop \ commitComment.txt"'. 다음과 같은 오류가 발생했습니다 :'[경고] 파일 이름이 실행 파일의 전체 경로를 나타내지 않습니다. ' –

+0

나는 그렇게 생각하지 않습니다. BuildConfiguration 변수를 사용할 수 없습니다. 작동하는 예를 공식화하겠습니다. –

+0

@XavierW. VSTS와 함께 작동하는 답안에 예제를 추가했습니다. 작동하는지 여부를 알려주세요. –

0

빌드 정의에 파워 쉘 스크립트 태스크를 생성하여 커밋 코멘트를 얻고 Rest API을 통해 텍스트 파일에 쓸 수 있습니다.

+0

내가 파워 쉘에서 아주 좋은 아니에요을. Power-shell과 VSTS가 함께 작동하는 예나 기사가 있습니까? –

2

다음 명령은 최신을 표시 ID를 커밋 메시지 커밋됩니다

git log --pretty=oneline | head -1 
+0

이것은 실제로 가장 간단한 대답입니다. 제 경우에는 Build.SOURCEVERSIONMESSAGE가 없어서 단순히 "git log head -1"을 사용했습니다. – rolls

+0

이것은 OS에 따라 다르므로 다음과 같이 대신 사용할 수 있습니다 :'git log -1 --pretty = oneline' – Sawtaytoes

관련 문제