Как достать номер версии и билда приложения с Jenkins?

197
18 января 2019, 04:20

У меня есть приложение на c#, которое билдится на Jenkins. Номера билдов идут по порядку от 1 до 23 на данный момент.

На About окне мне нужно выводить номер версии приложения вмести с номером билда. Вручную править каждый раз AssemblyVersion не вариант.)

Делала попытку установить [assembly: AssemblyVersion("1.0.0.*")], но номер билда получился 25137, хотя на самом Дженкенсе с нумерацией все нормально

Подскажите, пожалуйста как доставать номер текущего билда из Дженкинса?

Answer 1

Есть несколько способов, вот некоторые из них, на мой взгляд, вполне удобные:

Jenkins Environment Variables

Если вам надо получить номер прямо в pipeline и использовать в своём скрипте, например groovy, то номер билда будет доступен в переменной env.BUILD_NUMBER Полный список подобных переменных можно найти здесь:

http://YourJenkinsSite:8080/env-vars.html/

Некоторые переменные, например currentBuild.displayName могут быть изменены

Подробнее здесь:

http://YourJenkinsSite:8080/pipeline-syntax/globals#currentBuild

Jenkins REST API

Этот вариан, возможно, вам больше подойдёт: доступно для каждой джобы, например:

http://YourJenkinsSite:8080/job/YourJobName/api/

доступны как XML, так и JSON форматы:

XML:

http://YourJenkinsSite:8080/job/YourJobName/api/xml

вывод вида:

<build _class="org.jenkinsci.plugins.workflow.job.WorkflowRun">
<number>2200</number>
<url>http://localhost:8080/job/test_pipeline_copy/2200/</url></build>

JSON:

http://YourJenkinsSite:8080/job/YourJobName/api/json?pretty=true

вывод вида:

"builds" : [
    {
      "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
      "number" : 2200,
      "url" : "http://YourJenkinsSite:8080/job/YourJobName/2200/"
    }]

Дальше задача лишь спарсить нужные вам значения

если вам нужен только последний билд, можно использовать

http://YourJenkinsSite:8080/job/YourJobName/lastBuild/api/json?pretty=true

как вариант, доступ только к номеру последнего билда:

http://YourJenkinsSite:8080/job/YourJobName/lastBuild/api/xml?tree=displayName,lastBuild[number]

Или последнего успешного билда:

http://YourJenkinsSite:8080/job/YourJobName/lastSuccessfulBuild/api/json?tree=displayName,lastBuild[number]

Замените YourJenkinsSite:8080 и YourJobName на актуальные для вас значения

READ ALSO
Мгновенное создания файла csv

Мгновенное создания файла csv

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

141
Как сохранить текстовый файл в нужной кодировке?

Как сохранить текстовый файл в нужной кодировке?

Как известно строки в С# все в UnicodeКак сохранить текстовый файл в нужной кодировке ?

161
Управление компьютером через командную строку C#

Управление компьютером через командную строку C#

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

136
Проблемы с Rigidbody, Unity

Проблемы с Rigidbody, Unity

Rigidbody ведёт себя неадекватно при трении об коллайдерНесколько секунд двигаемся, прикасаясь к коллайдеру, потом то, что мы двигаем, дёргает...

154