我有两个仓库,除了代码开头的4个变量的值之外,它们的管道都是一样的。存储库用于生产和开发环境。
我想把管道写成一个库,然后从存储库调用它,把变量作为参数传递。有可能吗?
我试着这样做图书馆:pipelineDeployBq2bq.groovy
def call(Map variable1, Map variable2, Map variable3, Map variable4){
…
pipeline{
...
}
}
字符串
然后从仓库中的Jenkinsfile调用如下:
pipeline {
agent {
kubernetes {
label "xxxxxx"
yamlFile 'xxxxxx'
}
}
environment {
PROJECT_TYPE = xxxxxxx
}
stages {
stage('Stage 1') {
steps {
pipelineDeployBq2bq(prfBuckets, environmentProjects, pubSubByEnvironment, composerTags)
}
}
}//End stages
}//End pipelines
型
但我得到了这样的错误
Only one pipeline { ... } block can be executed in a single run.
型
1条答案
按热度按时间gudnpqoy1#
这里的主要问题是在同一个声明性管道中调用
pipeline
两次(根据定义,这是不可能的)。一个解决方案,如果您的管道包含多个阶段(它的作品完全罚款只有一个阶段太)是这样做字符串
在你的管道中这样称呼它:
型