Да, это возможно, из Jenkinsfile вы можете определить массив внутри stage () или вне stage () и использовать его, например,
В декларативном конвейере:
def files = ["arg1", "arg2"] as String[]
pipeline {
agent any
stages {
stage("Package") {
steps {
// script is optional
script {
// you can manipulate the variable value of files here
}
compress_files(files)
}
}
}
}
In конвейер со сценарием:
node() {
//You can define the value here as well
// def files = ["arg1", "arg2"] as String[]
stage("Package"){
def files = ["arg1", "arg2"] as String[]
compress_files(files)
}
}
А в общей библиотеке метод будет иметь вид
// var/compress_files.groovy
def call(String[] args) {
args.each {
// retrive the value from ${it} and proceed with your logic
}
}
или
def call(String... args) {
args.each {
// retrive the value from ${it} and proceed with your logic
}
}