Я храню Jenkinsfile
в своих репозиториях "lean":
@Library('utils') _
def svcName = currentBuild.rawBuild.project.parent.displayName
def sharedLibrary = new pythonApps()
def buildCommands = [ compileData: "python compile.py" ]
timestamps {
commonPipeline(sharedLibrary, svcName, buildCommands)
}
commonPipeline.groovy
находится внутри общей библиотеки в vars/
. Вот оно (усечено):
#!/usr/bin/env groovy
def call(sharedLibrary, svcName, buildCommands) {
pipeline {
agent { ... }
stages {
stage('Compilation') {
steps {
script {
sharedLibrary.executeStage("compile", buildCommands['compileData'])
}
}
}
... other stages ...
}
}
}
Я хотел бы разрешить нескольким командам с несколькими целями использовать один и тот же конвейер, но с другим sharedLibrary
.
Проблема возникает, когда Мне нужны определенные задания для передачи параметров. Я попытался добавить раздел параметров в executeStage
разделяемой библиотеки, но согласно: https://jenkins.io/doc/book/pipeline/syntax/#parameters параметры могут быть только внутри блока pipeline
или stage
, где в executeStage
I Я нахожусь в steps
блоке.
Как это сделать?