一.簡介
參數化pipeline是指通過傳參來決定pipeline的行為。參數化讓寫pipeline就像寫函數,而函數意味着可重用、更抽象。所以,通常使用參數化pipeline來實現一些通用pipeline。
在Jenkins pipeline中定義參數使用的是parameters指令,其只允許被放在pipeline塊下
pipeline {
agent any
parameters {
booleanParam(defaultValue:true, description: '',name: 'userFlag')
}
stages {
stage("foo") {
steps {
echo "flag: ${params.userFlag}"
}
}
}
}
booleanParam方法用於定義一個布爾類型的參數。接收三個參數
- defaultValue 默認值
- description 參數的描述信息
- name 參數名
在定義pipeline參數后,使用被傳入的參數會放到一個名為params的對象中,在pipeline中可直接使用。params.userFlag就是引用parameters指令中定義的userFlag參數
要手動執行一次,才可以實現這個,在啟動項目后,可以進行值設置
二.類型
參數類型
string 字符串類型
parameters {
string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: '')
}
text 多行文本類型,換行使用\n
parameters {
text(name: 'DEPLOY_TEXT', defaultValue: 'One\nTwo\nThree\n', description: '')
}
booleanParam 布爾類型
parameters {
booleanParam(name:'DEBUG_BUILD', defaultValue:true, description:'')
}
choice,選擇參數類型,使用\n來分隔多個選項
parameters {
choice(name:'CHOICES', choices:'dev\ntest\nstaging', description:'請選擇部署的環境' )
}
file,文件類型,用戶可上傳文件。但此類型存在bug,你無法拿到上傳后的文件,所以不推薦使用。具體看官方issue: JENKINS-27413
password 密碼類型
parameters {
password(name:'PASSWORD', defaultValue:'SECRET', description: 'A secret password')
}
多參數
pipeline同時定義多個參數
parameters {
booleanParam(name:'DEBUG_BUILD', defaultValue:true, description:'')
string(name:'DEPLOY_ENV', defaultValue:'staging', description:'')
}