作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将一堆旧脚本转换为 Jenkins 管道作业。对于我们的许多脚本,我们使用 JFrog CLI 来处理与 Artifactory 的所有交互。有了 Jenkins 管道,我们现在可以选择通过 Artifactory 插件来完成。但是,我似乎无法找到一种方法来以这种方式替换文件内的变量。
使用 JFrog CLI:
jfrog rt dl --spec spec.json --spec-vars="foo=fooValue;bar=barValue"
运行此命令时,
${foo}
的所有实例和
${bar}
spec.json 内部将被替换为相应的值。一切都用一行干净利落地工作。
rtDownload(
serverId: 'Artifactory',
spec: '''{
"files": [
{
"pattern": "spec.json"
}
]
}'''
)
其次是
rtDownload(
serverId: 'Artifactory',
specPath: 'spec.json'
)
这为我提供了我想要的规范文件,并下载了列出的大部分文件,但无法找到需要变量的文件。我一直无法找到任何选项来在文件下载中或之后的任何位置包含变量替换。
最佳答案
Jenkins Artifactory 插件目前不支持更改预定义的 FileSpec,就像 JFrog CLI 对 spec-vars
所做的那样。选项。
但是,如果您在管道中提供 FileSpec,则可以在 FileSpec 中设置变量,如下所示:
pipeline {
agent any
environment {
fileVar="myfile"
}
stages {
stage ('Download') {
steps {
rtDownload (
serverId: SERVER_ID,
spec: """{
"files": [
{
"pattern": "generic-local/${fileVar}",
"target": "/tmp/"
}
]
}"""
)
}
}
}
}
这意味着您现在将 FileSpec 作为 Jenkinsfile 的一部分而不是单独维护,这也将允许您避免每次都下载它。
关于jenkins - 如何从 Jenkins 声明式管道中替换 Artifactory File Spec "Spec Vars",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66144963/
我是一名优秀的程序员,十分优秀!