Дженкинс Groovy Сценарии - PullRequest
0 голосов
/ 01 марта 2019

Я новичок в скриптах Groovy, используемых в Jenkins.Мой вопрос заключается в том, как мы можем получить временную метку задания на основе имени и номера сборки?

Пример : я хочу получить метку времени 'MyDeployJob' (JobName) и для BuildNumber-105.

Я пытался использовать метод getBuildByBuildNumber() метод,но это не работает.Кроме того, я обнаружил, что переменная окружения BUILD_ID имеет временную метку, но я не могу понять, как получить детали с помощью Groovy Script.Пожалуйста, помогите.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 марта 2019

Вот пример того, как получить Job, построить по номеру для Job и все, что связано со временем, используя Groovy в консоли Jenkins:

//job by name
def job = Jenkins.instance.getItem("job name")

//build number
def build = job.getBuildByNumber(44)

println "getTimestampString: " + build.getTimestampString()
println "getTimestampString2: " + build.getTimestampString2()
println "getStartTimeInMillis: " + build.getStartTimeInMillis()
println "getTime: " + build.getTime()
println "getTimeInMillis: " + build.getTimeInMillis()
println "getTimestamp: " + build.getTimestamp()

//end time
println "End time: " + new Date(((long)build.getStartTimeInMillis() + build.duration))

Выход:

getTimestampString: 11 days
getTimestampString2: 2019-02-18T09:04:19Z
getStartTimeInMillis: 1550480659394
getTime: Mon Feb 18 09:04:19 UTC 2019
getTimeInMillis: 1550480659392
getTimestamp: java.util.GregorianCalendar[time=1550480659392,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Etc/UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=1,WEEK_OF_YEAR=8,WEEK_OF_MONTH=4,DAY_OF_MONTH=18,DAY_OF_YEAR=49,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=4,SECOND=19,MILLISECOND=392,ZONE_OFFSET=0,DST_OFFSET=0]
End time: Mon Feb 18 09:11:17 UTC 2019

Для доступа к нимв конвейере вы можете использовать currentBuild Ссылка на глобальную переменную:

echo currentBuild.durationString

Все детали вы можете найти в http://yourjenkinsurl/pipeline-syntax/globals, ниже некоторых полей:

timeInMillis : время с начала запланированного построения
startTimeInMillis : время с начала построения
длительность выполнения : продолжительность построения вмиллисекунды
durationString : удобочитаемое представление продолжительности сборки

...