Artifactory rtBuildInfo 不在 Jenkins docker 管道中收集环境变量
Artifactory rtBuildInfo does not collect env variables in Jenkins docker pipeline
我想使用 Artifactory 插件在 Jenkins 声明式 dockerized 管道中收集环境变量。
pipeline {
agent {
docker {
image 'node:10.16'
}
}
stages {
stage ('Build') {
// This publish build info but without env variables:
rtBuildInfo captureEnv: true
rtPublishBuildInfo serverId: "Artifactory1"
// This publish build info WITH env variables:
script {
server = Artifactory.server "Artifactory1"
buildInfo = Artifactory.newBuildInfo()
buildInfo.env.capture = true
buildInfo.env.collect()
server.publishBuildInfo buildInfo
}
}
}
}
因此,使用脚本语法就可以,而使用声明式则不行。我正在关注这个 JFrog 文档:https://www.jfrog.com/confluence/display/RTF/Declarative+Pipeline+Syntax#DeclarativePipelineSyntax-PublishingBuild-InfotoArtifactory
rtBuildInfo captureEnv: true
和 buildInfo.env.capture = true
set the Build-Info object to automatically capture environment variables while downloading and uploading files
这意味着环境变量只会在上传和下载期间收集。
buildInfo.env.collect()
,然而
collect environment variables at any point in the script
这就是在您的案例中收集环境变量的原因。声明式不支持类似选项。
我想使用 Artifactory 插件在 Jenkins 声明式 dockerized 管道中收集环境变量。
pipeline {
agent {
docker {
image 'node:10.16'
}
}
stages {
stage ('Build') {
// This publish build info but without env variables:
rtBuildInfo captureEnv: true
rtPublishBuildInfo serverId: "Artifactory1"
// This publish build info WITH env variables:
script {
server = Artifactory.server "Artifactory1"
buildInfo = Artifactory.newBuildInfo()
buildInfo.env.capture = true
buildInfo.env.collect()
server.publishBuildInfo buildInfo
}
}
}
}
因此,使用脚本语法就可以,而使用声明式则不行。我正在关注这个 JFrog 文档:https://www.jfrog.com/confluence/display/RTF/Declarative+Pipeline+Syntax#DeclarativePipelineSyntax-PublishingBuild-InfotoArtifactory
rtBuildInfo captureEnv: true
和 buildInfo.env.capture = true
set the Build-Info object to automatically capture environment variables while downloading and uploading files
这意味着环境变量只会在上传和下载期间收集。
buildInfo.env.collect()
,然而
collect environment variables at any point in the script
这就是在您的案例中收集环境变量的原因。声明式不支持类似选项。