在TeamCity中,有一種簡單的方法可以以MMdd格式獲取當前日期的變量(例如0811爲8-Aug)?TeamCity MMdd格式的當前日期變量
我的google-fu沒有打開現有的插件。我研究過編寫一個插件,但沒有安裝jdk,看起來很耗時。
在TeamCity中,有一種簡單的方法可以以MMdd格式獲取當前日期的變量(例如0811爲8-Aug)?TeamCity MMdd格式的當前日期變量
我的google-fu沒有打開現有的插件。我研究過編寫一個插件,但沒有安裝jdk,看起來很耗時。
的Groovy Plugin爲TeamCity的提供建立開始日期/時間特性:
提供建立屬性:
system.build.start.date/env.BUILD_START_DATE
system.build.start .time/env.BUILD_START_TIME
This blog post安裝/配置Groovy插件的說明,以及自定義日期/時間格式的示例。
您還可以嘗試Date Build Number插件。它提供了內部版本號格式的附加變量,而不是構建屬性。
這是很容易做到一個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%
這種方法的優點是你不需要使用插件然後引用此版本參數。缺點是你需要引入一個構建步驟。
不錯的提示,這裏是毫秒和路徑友好的格式'[DateTime] :: Now.ToString(「yyyyMMdd_hhmmssff」)' – iraSenthil
您還必須在代理的buildAgent.properties文件中定義env.BUILD_START_TIME。否則TeamCity將不匹配代理兼容。 – seldary
@seldary,感謝這裏提到的構建代理中屬性的定義。如果我確定將覆蓋構建服務器值的env屬性,我如何真正確保將powershell值推送到構建代理? –
對於基於Unix的生成代理,我建議未來的自定義腳本生成的一個命令:
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變量。
要向我的TeamCity版本添加日期文件夾,我將以下內容添加到我的自定義腳本中。我卡住的是日期字符串中的雙%符號。 D'oh
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
博客鏈接已損壞。 –
@Bilal您現在可以總結如何自定義日期/時間格式鏈接已損壞,我無法在任何地方找到該信息 – PeteN
@pete現在添加了工作博客鏈接。 –