如何在 jenkins 中創建具有當前日期的工件目錄。也就是說,目標路徑應該有一個以當前日期作為目錄名稱的目錄。
rtUpload (
serverId: 'Artifactory-1',
spec: '''{
"files": [
{
"pattern": "bazinga/*froggy*.zip",
"target": "bazinga-repo/froggy-files/<CurrentDate>"
}
]
}''',
每次觸發管道時,目標路徑都應具有該特定日期的目錄名稱。例如,如果管道在 2022-03-29 運行,則:
"target": "bazinga-repo/froggy-files/220329/"
uj5u.com熱心網友回復:
這是另一種選擇:
def current_date = new java.text.SimpleDateFormat('yyMMdd').format(new Date())
pipeline {
// do stuff, generate files...
rtUpload (
serverId: 'Artifactory-1',
spec: """{
"files": [
{
"pattern": "bazinga/*froggy*.zip",
"target": "bazinga-repo/froggy-files/${current_date}"
}
]
}"""
// more stuff
} // end pipeline
這利用了 groovy 字串插值和主pipeline塊外的腳本化管道變數。
運行時將分配變數current_date,然后當它到達rtUpload呼叫時,將對spec引數進行評估,因為它使用triple-double-quote符號,所以在傳遞給函式之前,${current_date}該部分將被 groovy 變數的值替換。
這不依賴于rtUpload生成 shell 和評估 shell 環境的函式,以便為規范定義提供日期值。
Groovy 字串 https://groovy-lang.org/syntax.html#all-strings
uj5u.com熱心網友回復:
你可以這樣做
定義此環境部分
environment {
CURRENT_DATE = new java.text.SimpleDateFormat('yyMMdd').format(new Date())
}
rtUpload (
serverId: 'Artifactory-1',
spec: '''{
"files": [
{
"pattern": "bazinga/*froggy*.zip",
"target": "bazinga-repo/froggy-files/$CURRENT_DATE"
}
]
}''',
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454495.html
