docker - Artifactory rtBuildInfo不在Jenkins Docker管道中收集环境变量

标签 docker jenkins jenkins-pipeline artifactory

我想使用Artifactory插件在Jenkins声明性dockerized管道内收集env变量。

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: truebuildInfo.env.capture = true

set the Build-Info object to automatically capture environment variables while downloading and uploading files



这意味着env变量将仅在上载和下载期间收集。
buildInfo.env.collect(),但是

collect environment variables at any point in the script



这就是在您的情况下收集env变量的原因。声明式不支持类似选项。

关于docker - Artifactory rtBuildInfo不在Jenkins Docker管道中收集环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431966/

相关文章:

docker - 如何配置 NGINX 以从 UNIX 套接字服务 ASGI?

python - 使用 pip 在 docker 容器中安装 opencv 时遇到问题

docker - 如何在 K8S 中的 IP 表中阻止到 ip 的传出流量

git - 如何将 git commit hash 分配给 Jenkins 文件中的变量

python - jenkinsapi python - 如何触发和跟踪作业结果

groovy - 如何将使用 Jenkinsfile (groovy) 中的变量执行的 shell 命令的输出获取到?

docker - minikube 共享卷在一段时间后不显示文件

github - 每次提交(更改)后自动在 Jenkins 中运行测试

grails - 如何确定 Jenkins 管道中的当前操作系统

Git 使用 jenkins 管道 pull 远程服务器