Определить предыдущий коммит во время выпуска VSTS - PullRequest
0 голосов
/ 25 мая 2018

При выполнении развертывания я ожидаю выполнить некоторые оптимизации в зависимости от того, были ли определенные пути к файлам изменены с момента предыдущего выпуска.

Есть ли способ узнать, какой хэш предыдущего коммита нацелевая среда была?Я предполагаю, что это должно было бы пойти "Предыдущий выпуск" -> "Build Artifact" -> "Commit", но я застрял на первом шаге.

Чтобы уточнить, я хочу иметь возможностьсписок коммитов, отображаемых в модале «Развертывание»:

enter image description here

1 Ответ

0 голосов
/ 25 мая 2018

Если определение сборки строится для нескольких ветвей

Тогда вам необходимо получить значение sha-1 последнего коммита предыдущим выпуском / сборкой, а затем получить последний коммит.Шаги для достижения, как показано ниже:

  1. Получить последний выпуск

    использовать REST API :

    GET https://{account}.vsrm.visualstudio.com/{project}/_apis/release/releases?$top=2&definitionId={id}api-version=4.1-preview.6
    

    И выполучит последние два выпуска для определенного определения выпуска.А для двух выпусков один - текущий, который вы развертываете, другой - последний выпуск.

  2. Получить последний buildId из последнего выпуска

    На первом шагевы можете получить журналы последнего выпуска из параметра logsContainerUrl.И вы можете скачать последний выпуск журнала, чтобы сжать и разархивировать журналы.Затем вы можете получить buildId из журнала шагов артефакта загрузки.

  3. Получить последний коммит sha-1 из buildId

    Использовать REST API чтобы получить последнюю сборку, и вы можете получить исходную версию (последний коммит) из ответа.

Если определение сборки строится для определенной ветви

Тогда последняяЗафиксировать значение sha-1 проще с помощью команд git.

Вы можете использовать задачу PowerShell с помощью приведенного ниже сценария:

git clone <URL for git repo> repofolder
cd repofolder
git checkout $(Build.SourceBranchName)
$lastcommit=$(git rev-parse HEAD~)
echo "last commit sha-1 value is $lastcommit"

Примечание:

  • Для URL-адреса git-репо необходимо ввести учетные данные (например, PAT) внутри URL-адреса, например:

    https://Personal%20Access%20Token:PAT@account.visualstudio.com/project/_git/repo

  • Если артефакты сборки не являются Первичными артефактами для выпуска, следует использовать переменную $(Release.Artifacts.{alias}.SourceBranchName) вместо $(Build.SourceBranchName) в сценарии powershell.

  • Ошибка при стандартной ошибке *Параметр 1061 * в задаче PowerShell следует отменить.

    enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...