Выполнение определенной команды diff между файлами в двух сборках Jenkins - PullRequest
0 голосов
/ 09 октября 2019

Я недавно обнаружил abidiff;инструмент, который принимает два двоичных файла в качестве входных данных и описывает различия в ABI. Это может оказаться полезным для определения необходимости изменения номеров версий ABI.

В идеале мы бы интегрировали это в наш CI на основе Jenkins, но я не могу сразу увидеть простой способ выполнить команду для файла втекущая сборка и соответствующий файл в последней успешной сборке (в идеале в той же ветке).

Я поэкспериментировал с шагом сборки Exceute Shell, но не смог найти очевидный способ добраться до предыдущегономер успешной сборки, по которому я в итоге смогу найти путь к файлам, которые хочу сравнить. Любые предложения / указатели о том, как получить это? Существует переменная окружения GIT_PREVIOUS_SUCCESSFUL_COMMIT, но, насколько я могу судить, она не слишком полезна, поскольку для разрешения SHA в файле на диске потребуется преобразование SHA в номер сборки.

1 Ответ

0 голосов
/ 09 октября 2019

Вы можете найти последнюю успешную сборку, подобную этой (если вы используете конвейер)

import jenkins.model.*

def job = jenkins.model.Jenkins.instance.getItemByFullName('<jobname>')
def buildNumber = job.getLastSuccessfulBuild().getNumber()
sh "abidiff <my-file> ../builds/$buildNumber"

Вы также можете взглянуть на: Как получить build_id последней успешной сборкив Дженкинс?

Или вы можете подумать о archiveArtifacts

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