【问题标题】:Artifactory rtBuildInfo does not collect env variables in Jenkins docker pipelineArtifactory rtBuildInfo 不会在 Jenkins docker 管道中收集环境变量
【发布时间】:2019-08-09 14:16:01
【问题描述】:

我想使用 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

【问题讨论】:

    标签: docker jenkins jenkins-pipeline artifactory


    【解决方案1】:

    rtBuildInfo captureEnv: truebuildInfo.env.capture = true 都有

    将 Build-Info 对象设置为在下载和上传文件时自动捕获环境变量

    这意味着环境变量只会在上传和下载期间被收集。

    buildInfo.env.collect(),然而

    在脚本中的任意位置收集环境变量

    这就是在您的案例中收集环境变量的原因。声明式不支持类似的选项。

    【讨论】:

    • 谢谢。额外信息:由于管道执行,我正在推送 docker 图像。该操作也不会触发捕获环境变量。
    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2018-11-24
    • 2018-10-02
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多