我的结构如下:
/Jenkinsfile/script2.groovy
/Jenkinsfile/pipeline2.yaml
script1.groovy
pipeline1.yaml
在script1中有一个对管道的引用,使用:
yamlFile "pipeline1.yml"
或
yamlFile "./Jenkinsfiles/pipeline2.yaml"
而且效果很好。我试图在script2上使用相同的管道文件,但无法使它工作。
下面是脚本的相关部分:
pipeline {
agent {
kubernetes {
cloud "xxxx"
yamlFile "pipeline.yml"
}
}
有什么想法吗?
注意:、pipeline1和pieline2是相同的文件,只是显示不同的位置。
发布于 2020-07-20 22:58:18
鉴于您提到的目录结构:
.
├── Jenkinsfile
│ ├── pipeline2.yaml
│ └── script2.groovy
├── pipeline1.yaml
└── script1.groovy
可以从父目录中读取以下文件:
For script1来自./
groovy ./script1.groovy
能够同时读取./pipeline1.yaml
和./Jenkinsfile/pipeline2.yaml
For Script2来自./
groovy ./Jenkinsfile/script2.groovy
能够读取./pipeline1.yaml
,因为它位于同一个目录中,文件./Jenkinsfile/script2.groovy
是从(即./
)运行的。groovy ./Jenkinsfile/script2.groovy
也能够读取./Jenkinfile/pipeline2.yaml
,因为路径是相对的。我认为您可以通过将文件驻留在一个目录中来简化这一点。还使用语法readYaml(file: './nameOfFile.yaml')
雷地安部分。
.
├── pipeline1.yaml
├── script1.groovy
├── pipeline2.yaml
└── script2.groovy
https://stackoverflow.com/questions/61922556
复制相似问题