Есть ли в TeamCity простой способ получить переменную для текущей даты в формате MMdd (например, 0811 для 8 августа)?
Мой google-fu не включил существующие плагины. Я задумал написать плагин, но не установил jdk, что требует времени.
Если Вы только хотите иметь короткую команду удара на шаге сборки, просто используйте как ниже.
echo "##teamcity[setParameter name='build.timestamp' value='$(date +%%m%%d)']"
(дважды %
символ является для TeamCity собственным правилом Escape использовать %
символ)
Это установит значение параметра MMdd прямо после выполнения во время времени выполнения, настолько очень полезного для помещения в любой шаг сборки. Затем можно получить значение параметра позже.
Примечание, которое необходимо создать build.timestamp
параметр во-первых к проекту TeamCity.
шаг вперед А, я сделал простой сценарий удара, чтобы иметь формат даты удара метка времени. Этот сценарий установит метку времени на поддерживаемый формат даты и времени любого удара и название параметра к TeamCity.
name="" # TeamCity parameter name
format="%Y-%m-%dT%H:%M:%S%z" # ISO8601 format by default
result="" # a TeamCity parameter value to be set
for ARGUMENT in "$@"
do
KEY=$(echo "$ARGUMENT" | cut -f1 -d=)
VALUE=$(echo "$ARGUMENT" | cut -f2 -d=)
case "$KEY" in
name) name=${VALUE} ;;
format) format=${VALUE} ;;
*)
esac
done
result=$(date "+$format")
echo "##teamcity[setParameter name='$name' value='$result']"
Ниже использования установит метку времени формата ISO8601 на build.timestamp
параметр.
./teamcity_datetime.sh name=build.timestamp
, Если Вы хотите установить только MMdd
, выполнение могло бы быть как ниже.
./teamcity_datetime.sh name=build.timestamp format="%%m%%d"