【问题标题】:Set Global Variables in Jenkins在 Jenkins 中设置全局变量
【发布时间】:2016-09-19 13:50:03
【问题描述】:

我设置了一些具有默认值的全局变量,并尝试使用 ${ID}、${PRJ}、${RELEASE} 访问它们,但没有成功。

ID -> ${JOB_NAME} |剪切 -d '_' -f 1

PRJ -> ${JOB_NAME} |剪切 -d '_' -f 2

释放 ->${JOB_NAME} |剪切 -d '_' -f 3

Jenkins 职位名称格式

ID_PRJ_RELEASE

例如1234_AngularJS_Q1

【问题讨论】:

    标签: bash shell jenkins jenkins-plugins


    【解决方案1】:

    使用普通引号并使用子流程进行分配:

    ID=$(echo "${JOB_NAME}" | cut -d'_' -f1)
    

    您还可以使用 shell 内部结构(避免调用 cut),与

    ID="${JOB_NAME//*_}"
    RELEASE="${JOB_NAME//*_}"
    

    PRJ 需要 2 个步骤或类似 sed 的东西。 但在实施之前,请确保 PRJ 也不会包含下划线,例如1235_Hello_World_1.0.

    【讨论】:

    • 但仍然无法使用 Shell 脚本中的 ${ID}、${PRJ}、${RELEASE} 访问它们。
    • 请注意,这些变量位于“管理 Jenkins > 全局属性”部分并集中管理。
    • 当您在脚本中设置值,完成脚本并启动另一个脚本时,第一个脚本的所有设置都将丢失。当 ${JOB_NAME} 在您的脚本中可用时,您可以将额外的分配放在“包含文件”中,然后将该文件包含在您的脚本中。包括使用source 完成,例如source /usr/local/bin/jenkensutils.inc 作为脚本的第二行(第一行将是#!/bin/bash)。你可以用一个点缩写source,然后选择另一个路径或文件名(我更喜欢文件夹shlib)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2019-07-18
    • 2020-07-23
    相关资源
    最近更新 更多