2016-07-05 2 views
3

Я в среде CI, использующей VSTS, и хочу получить комментарий фиксации, чтобы установить его в текстовый файл.Как получить идентификатор и сообщение Git в сборке VSTS/TFS?

Вот мой билд шаг: enter image description here

Идея заключается в том, чтобы скопировать GIT фиксации комментарий в текстовый файл, хранящийся в папке артефакта. Затем с помощью HockeyApp SDK я установлю комментарий фиксации в примечании relase.

Я могу легко скопировать файл с помощью командной строки, но я не знаю, как получить комментарий.

ответ

3

Переменная окружения $(Build.SOURCEVERSIONMESSAGE) установлена ​​во время сборки. Вы можете получить доступ к нему, используя $(build.SOURCEVERSIONMESSAGE) непосредственно в вводах задач.

Если вы хотите получить к нему доступ в сценарии powershell или встроенном сценарии командной строки. Вы можете получить к нему доступ через переменную окружения, то есть Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE

Следующий скрипт создаст новый файл 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

Вы можете создать задачу сценария power-shell в определении построения, чтобы получить комментарий фиксации и записать его в текстовый файл через Rest API.

+0

Я не очень хорошо в Power-оболочке. У вас есть пример или статья, говорящая о Power-shell и VSTS, работающих вместе? –

2

Следующая команда отобразит последний коммит идентификатор и сообщение коммита:

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

Это на самом деле самый простой ответ. В моем случае Build.SOURCEVERSIONMESSAGE отсутствовал, поэтому я просто использовал «git log head -1» – rolls

+0

Это зависит от ОС, вы можете использовать это вместо: 'git log -1 --pretty = oneline' – Sawtaytoes

Смежные вопросы