Linux 使Jenkins元数据可用于项目

Linux 使Jenkins元数据可用于项目,linux,jenkins,jenkins-plugins,Linux,Jenkins,Jenkins Plugins,我已经设置了Jenkins服务器+元数据插件() 我很难理解如何在项目中使用此元数据。我使用Jenkins->MetadataConfiguration页面添加了一些带有默认值的键(例如some\u METADATA\u KEY,默认值FOO作为字符串)暴露于环境也被选中 现在,如果我创建一个新项目,在“元数据”部分,我可以看到一些元数据\u键作为一个预设值 我如何使用它?我希望它最终出现在我的构建环境中;仅使用env运行shell脚本不会显示变量 在项目中,我尝试过: 创建了一个与预定义变量

我已经设置了Jenkins服务器+元数据插件()

我很难理解如何在项目中使用此元数据。我使用
Jenkins->MetadataConfiguration
页面添加了一些带有默认值的键(例如
some\u METADATA\u KEY
,默认值
FOO
作为字符串)<代码>暴露于环境也被选中

现在,如果我创建一个新项目,在“元数据”部分,我可以看到
一些元数据\u键
作为一个预设值

我如何使用它?我希望它最终出现在我的构建环境中;仅使用
env
运行shell脚本不会显示变量

在项目中,我尝试过:

  • 创建了一个与预定义变量同名的新字符串值,没有设置值(我希望获得预定义值作为默认值)-->失败,变量根本没有设置

  • 创建一个具有不同名称(即
    SOME\u FOOBAR\u KEY
    )和
    $SOME\u METADATA\u KEY
    -->值的新字符串值失败,变量的值为“$SOME\u METADATA\u KEY”,而不是
    FOO


我的目标是能够在一个地方定义“全局”值,并将它们作为环境变量用于多个项目。

元数据很奇怪。如果您希望像使用全局环境变量一样使用它,那么它不会按照您想要的方式运行

从:

我们区分元数据定义和元数据值。这个想法来自Jenkins的参数设置。 MetadataValue是在项目或从属服务器的配置页面上设置的值,也是为构建保存的值

管理员使用元数据定义来确保所有项目上都存在某些元数据。 MetadataDefinition通过一个特殊的配置页面进行设置,为定义配置名称和默认值。 一旦设置,MetadataDefinition将在服务器上的所有项目中结束,并在配置项目时提示用户为其设置值。 然后将MetadataDefinitions转换为MetadataValue

据我所知,您当前有一个元数据定义(来自全局元数据配置),需要将其更改为元数据值,以便在项目中可用

如何将定义转换为值的规则没有得到很好的解释。根据我的经验,编辑项目的配置并选择或编辑特定的预设值似乎会将定义作为值导入到项目中。因此,如果遵循以下步骤,您可以在项目的构建环境中看到元数据:

  • 在全局元数据配置中定义一个键(
    MY_key
    )和值,确保选中了“暴露于环境”
  • 编辑项目的配置。元数据键和默认值应显示在“预设”下。选择或编辑要“导入”到项目中的预设值。保存
  • 运行生成并检查环境中的
    MD\u MY\u KEY

  • 基于所有这些,我会关注如何在许多项目的全局定义中使用价值。我怀疑当项目将定义转换为值时,项目的值可能与全局定义值分离。元数据文档意味着定义是为了确保项目上存在元数据,而不一定是为了跨项目管理相同的值

    我想我终于明白了。您需要转到
    Jenkins->Configure System->Global properties
    ,选中
    元数据
    ,并在那里添加值,选中
    暴露于环境

    我不知道
    元数据配置
    是如何联系在一起的,它要么是坏的,要么是非常违反直觉的:(


    稍后编辑:好的,我错了。它不起作用。但我找到了一种实现我想要的方法,
    Jenkins->Configure System->Global properties->Environment Variables
    ,将所有内容都设置在那里。

    根据元数据插件页面,环境变量的前缀将是
    MD
    。您检查了吗
    MD\u一些元数据\u键
    ?是的,我使用
    env
    打印了所有内容,没有任何内容;当然,除非我在项目本身内部定义了值(在这种情况下它可以工作);但我想以某种方式使用预设值。的确,元数据插件很奇怪。我不确定您在第2步选择的意思;是的,我看到了预设变量“MY_KEY”在我的项目配置中使用其默认值,我可以编辑该值。但无论是否使用默认值,该变量在我的环境中都不可用,无论是
    my_KEY
    还是
    MD_my_KEY
    (只需运行“env”作为shell脚本构建步骤进行测试)@未知有趣,您描述的行为与我的不匹配。在项目配置中,如果我选择(单击现值字段)值或编辑值时,变量会显示在环境中。Jenkins 1.565.1 LTS,Metadata 1.1.0b。我使用的是1.585和1.1.0b。我将尝试获取您的Jenkins版本并重试。不知道我在这里做了什么不同。您能发现我配置中的任何问题吗?