В TeamCity есть простой способ получить переменную для текущей даты в формате MMdd (например, 0811 за 8 августа)?
В моем google-fu не появились существующие плагины. Я просмотрел плагин, но не установил jdk, который выглядит много времени.
В TeamCity есть простой способ получить переменную для текущей даты в формате MMdd (например, 0811 за 8 августа)?
В моем google-fu не появились существующие плагины. Я просмотрел плагин, но не установил jdk, который выглядит много времени.
Groovy Плагин для TeamCity предоставляет свойства даты начала/времени сборки:
Предоставляет свойства построения:
system.build.start.date/env.BUILD_START_DATE
system.build.start.time/env.BUILD_START_TIME
В этом сообщении в блоге содержатся инструкции по установке/настройке плагина Groovy, а также пример настройки формата даты/времени.
Это довольно легко сделать с шагом сборки PowerShell (без плагина) с использованием следующего исходного кода:
echo "##teamcity[setParameter name='env.BUILD_START_TIME' value='$([DateTime]::Now)']"
или (для UTC):
echo "##teamcity[setParameter name='env.BUILD_START_TIME' value='$([DateTime]::UtcNow)']"
Это использует функцию TeamCity Service Message, которая позволяет вам взаимодействовать с механизмом сборки во время выполнения, например. задайте параметры сборки.
Затем вы можете ссылаться на этот параметр сборки из других мест в TeamCity, используя синтаксис %env.BUILD_START_TIME%
Преимущество такого подхода заключается в том, что вам не нужно использовать плагин. Недостатком является то, что вам нужно ввести шаг сборки.
Для агентов сборки на основе Unix я предлагаю следующий пользовательский script как одну из команд сборки:
export current_build_date_format="+%%Y.%%m.%%d"
export current_build_date="$(date $current_build_date_format)"
echo "##teamcity[setParameter name='env.current_build_date' value='$current_build_date']"
Вам нужно сделать знак двойного%, чтобы избежать интерпретации для date допустимый аргумент командной строки FORMAT (см.% Y.% m.% d) как уже существующая переменная TeamCity.
Вы также можете попробовать Плагин даты сборки. Он генерирует дополнительный var в формате номера сборки, а не для создания свойства.
Чтобы добавить датированную папку в мою сборку в TeamCity, я добавил следующее к своему пользовательскому script. То, что я застрял, - это знак двойной% в строке даты. D'о
TARGET_DIR=/Users/admin/build/daily
TARGET=$(date "+%%Y-%%m-%%d")
if [ ! -d ${TARGET_DIR} ]; then
mkdir -vp ${TARGET_DIR}/
fi
mv -v build.dmg ${TARGET_DIR}/build_${TARGET}.dmg