首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Jenkins管道中从文件中加载YAML

在Jenkins管道中从文件中加载YAML
EN

Stack Overflow用户
提问于 2020-05-20 20:44:20
回答 1查看 491关注 0票数 0

我的结构如下:

代码语言:javascript
运行
复制
/Jenkinsfile/script2.groovy
/Jenkinsfile/pipeline2.yaml
script1.groovy
pipeline1.yaml

在script1中有一个对管道的引用,使用:

代码语言:javascript
运行
复制
yamlFile "pipeline1.yml"

代码语言:javascript
运行
复制
yamlFile "./Jenkinsfiles/pipeline2.yaml"

而且效果很好。我试图在script2上使用相同的管道文件,但无法使它工作。

下面是脚本的相关部分:

代码语言:javascript
运行
复制
pipeline {
    agent {
        kubernetes {
            cloud "xxxx"
            yamlFile "pipeline.yml"
        }
    }

有什么想法吗?

注意:、pipeline1和pieline2是相同的文件,只是显示不同的位置。

EN

回答 1

Stack Overflow用户

发布于 2020-07-20 22:58:18

鉴于您提到的目录结构:

代码语言:javascript
运行
复制
.
├── 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') 雷地安部分。

代码语言:javascript
运行
复制
.
├── pipeline1.yaml
├── script1.groovy
├── pipeline2.yaml
└── script2.groovy
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61922556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档