Как получить метку времени создания из переменных Jenkins?
Как я могу получить метку времени сборки последней сборки от Jenkins?
Я хочу вставить это значение в тему "Электронная почта" в действиях после сборки.
Ответы
Ответ 1
ПРИМЕЧАНИЕ: это изменилось в Jenkins 1.597, пожалуйста, смотрите здесь для получения дополнительной информации о миграции
Вы должны иметь возможность просматривать все глобальные переменные среды, доступные во время сборки, https://<your-jenkins>/env-vars.html
.
Замените https://<your-jenkins>/
URL-адресом, который вы используете для перехода на веб-страницу Jenkins (например, это может быть http://localhost:8080/env-vars.html
).
Одна из переменных среды:
BUILD_ID
The current build id, such as "2005-08-22_23-59-59" (YYYY-MM-DD_hh-mm-ss)
Если вы используете редактируемое уведомление по электронной почте от jenkins, вы можете использовать ${ENV, var="BUILD_ID"}
в строке темы вашего письма.
Ответ 2
Плагин Timestamp Build будет лучшим ответом на получение TIMESTAMPS
в процессе сборки.
Следуйте приведенным ниже Простым шагам, чтобы включить переменную "BUILD_TIMESTAMP"
.
ШАГ 1:
Manage Jenkins -> Plugin Manager -> Installed...
Search for "Build Timestamp Plugin".
Install with or without Restart.
ШАГ 2:
Manage Jenkins -> Configure System.
Search for 'Build Timestamp' section, then Enable the CHECKBOX.
Select the TIMEZONE, TIME format you want to setup with..Save the Page.
ПРИМЕНЕНИЕ:
When Configuring the Build with ANT or MAVEN,
Please declare a Global variable as,
E.G. btime=${BUILD_TIMESTAMP}
(use this in your Properties box in ANT or MAVEN Build Section)
use 'btime' in your Code to any String Variables etc..
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Ответ 3
Попробуйте использовать Build Timestamp Plugin
и используйте переменную BUILD_TIMESTAMP
.
Ответ 4
Я знаю, что его последний ответ на этот вопрос, но я недавно нашел лучшее решение этой проблемы без установки плагина. Мы можем создать отформатированный номер версии и затем использовать переменную, созданную для отображения даты и времени сборки.
Шаги для создания: Build Environment → Создать отформатированный номер версии:
вот оно. Просто используйте переменную, созданную выше в строке темы письма, как ${ENV, var = "BUILD_DATE" }, и вы получите дату/время текущей сборки.
Ответ 5
Сгенерируйте переменные среды из сценария (сценарий Unix):
echo "BUILD_DATE=$(date +%F-%T)"
Ответ 6
В этом ответе ниже показан другой метод, использующий функцию regexp плагина описания Setter, который решил мою проблему, поскольку я не мог установить новые плагины на Jenkins из-за проблем с разрешением:
Использовать метку времени сборки в настройке описания сборки Jenkins
Ответ 7
Один из способов сделать это - использовать сценарий оболочки в разделе глобальной среды. Здесь я использую метку времени UNIX, но вы можете использовать любой формат времени, совместимый с синтаксисом сценария оболочки:
pipeline {
agent any
environment {
def BUILDVERSION = sh(script: "echo 'date +%s'", returnStdout: true).trim()
}
stages {
stage("Awesome Stage") {
steps {
echo "Current build version :: $BUILDVERSION"
}
}
}
}
Ответ 8
Если вы хотите добавить временную метку к каждому запросу от браузера на сервер jenkins.
Вы можете обратиться к механизму выдачи крошки Дженкинса, и вы можете взломать здесь /scripts/hudson-behavior.js add modify. поэтому он преобразует метку времени в сервер.
/**
* Puts a hidden input field to the form so that the form submission will have the crumb value
*/
appendToForm : function(form) {
// add here. ..... you code
if(this.fieldName==null) return; // noop
var div = document.createElement("div");
div.innerHTML = "<input type=hidden name='"+this.fieldName+"' value='"+this.value+"'>";
form.appendChild(div);
}