【问题标题】:Jenkins - Pass Artifactory Url to Promoted Build PluginJenkins - 将 Artifactory Url 传递给升级的构建插件
【发布时间】:2015-07-14 22:03:04
【问题描述】:

tl;博士:

我有一份 Jenkins 工作(工作 #1)。我想使用Promoted Build Plugin(Job #2)调用第二份工作。作业 #2 已参数化,需要作业 #1 生成的人工 URL - 如何将参数从作业 #1 传递到作业 #2?使用批准参数似乎不起作用,因为此参数由环境变量组成。我实际上只是想在 Job #1 中创建一个环境变量,然后将其作为参数传递给 Job #2 - 肯定有办法做到这一点吗?


用例:

我有一个将工件上传到工件的 Jenkins 工作。我正在尝试使用Promoted Build Plugin 来触发将工件URL 作为参数的第二个作业。但是,我似乎找不到任何方法将工件 URL 传递给它 - 在作业本身中,我从 $DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz 创建 URL - 但是,当提升脚本运行时,$ BUILD_ID 具有不同的值,因为从技术上讲,提升发生在不同的工作中(据我所知,插件的工作方式是创建一个处理构建提升的小型迷你工作,并且它们有自己的编号)。我尝试将完整的 URL 保存到 shell 脚本中名为 $ARTIFACTORY_URL 的变量中,但同样,促销作业似乎无法访问它。如何将变量从我的 Jenkins 工作传递到提升工作?

【问题讨论】:

    标签: jenkins artifactory promoted-builds


    【解决方案1】:

    在您的构建中,您可以添加一个 shell 步骤,该步骤在工作区中创建一个 properties 文件,该文件可以在升级时由参数化触发器拾取。一个示例 shell 步骤可能如下所示:

    # Create a properties file for the promotion step
    cat > $WORKSPACE/artifactory.properties <<EOF
    ARTIFACTORY_URL=$DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz
    EOF
    
    # Verify the properties file contents
    cat ${WORKSPACE}/artifactory.properties
    

    然后在升级步骤中添加一个 Trigger parameterized build on other project 动作,设置要触发的作业,然后在 Add parameters 下选择 Parameters from properties文件 并输入属性文件的名称。这应该提供触发作业所需的参数。

    【讨论】:

    • 谢谢亚当。此解决方案适用于用例。我发现这个解决方案的限制是 artifactory.properties 文件在新构建完成后立即被覆盖,并且 url 对于以前的构建无效。我的用例是能够部署任何非最新版本。
    【解决方案2】:

    我致力于解决 Adam Reid 解决方案的局限性。

    在工作 1 中:

    一个。添加构建步骤“执行 shell”(Adam 的解决方案):

    # Create a properties file for the promotion step
    cat > $WORKSPACE/artifactory.properties <<EOF
    ARTIFACTORY_URL=$DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz
    EOF
    
    # Verify the properties file contents
    cat ${WORKSPACE}/artifactory.properties
    

    b.添加构建后操作“归档工件”:

    '要存档的文件' = artifactory.properties

    c。在促销的“触发/调用其他项目上的购买”中,添加“预定义参数”:

    PROMOTED_JOB_NAME=${PROMOTED_JOB_NAME}
    PROMOTED_NUMBER=${PROMOTED_NUMBER}
    

    在工作 2 中:

    一个。添加构建步骤“从另一个项目复制工件”:

    '项目名称' = $PROMOTED_JOB_NAME

    'which build' = 特定的构建

    '内部版本号' = $PROMOTED_NUMBER

    'Artifacts' = artifactory.properties

    b.添加构建步骤“注入环境变量”与

    '属性文件路径' = artifactory.properties

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多