您有兩種選擇。
在您的jenkins文件中,處理後再次調用屬性。
#!groovy
@Library('shared') _
properties()
// Do pipeline
properties()
def properties() {
// Set Jenkins job properties
properties([
buildDiscarder(logRotator(numToKeepStr: '20')),
parameters([//params])
])
}
親的,簡單嗎?缺點:只有在步驟成功並且不提前退出時纔有效。
替代方案:在構建期間動態調整(我們將這些函數放在共享庫中,並在我們需要更新參數(如工件列表)時調用它們)。注意:可能需要腳本安全審批
/**
* Change param value during build
*
* @param paramName new or existing param name
* @param paramValue param value
* @return nothing
*/
def setParam(String paramName, String paramValue) {
List<ParameterValue> newParams = new ArrayList<>();
newParams.add(new StringParameterValue(paramName, paramValue))
$build().addOrReplaceAction($build().getAction(ParametersAction.class).createUpdated(newParams))
}
/**
* Add a new option to choice parameter for the current job
*
* @param paramName parameter name
* @param optionValue option value
* @return nothing
*/
def addChoice(String paramName, String optionValue) {
addChoice($build().getParent(), paramName, optionValue)
}
在上述情況下,這些方法存在於共享庫內的/ vars中。 /vars/jobParams.groovy。因此,從Jenkinsfile或其他共享庫中,可以使用以下語法調用這些文件:
jobParams.addChoice("ARTIFACT_NAME", "da-name")
您是否曾想到這一點? – Mike
不,這個插件不再被分發,所以它不太可能在jenkins 2中被支持。也許[Extended choice parameter](https://wiki.jenkins.io/display/JENKINS/Extended+Choice+Parameter+plugin)plugin [可以做類似的事情](https://stackoverflow.com/a/46122406/2029354),但只能使用腳本管道(而不是聲明式)和[它在藍色海洋中播放不好](https://gist.github .com/jgraglia/44a7443847cff6f0d87387a46c7bb82f#gistcomment-2158077) – Albert