云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

MySQL数据库_腾讯云课程_试用

小七 141 0

模板插件简介

我们刚刚发布的Nectar 11.10版本中有模板插件,我认为这是我们添加到Nectar中的非常有用的插件之一,它在开源Jenkins中是不可用的。所以我想谈谈。许多严肃的Jenkins用户都有一个共同的问题,他们有很多看起来相似的工作。JENKINS-3157,目前是JIRA投票最多的议题,也说明了同样的痛点。模板插件是我对这个问题的答案。这个插件的作用是允许你定义一个"模型"。模型是一个抽象的概念,适合你的特定问题领域。您可以通过定义一组属性来实现这一点,类似于在Java中如何使用一组属性定义一个类,或者如何在数据库中使用一组列定义一个表。然后定义一个转换,将这个模型转换成Jenkins理解。创造模板这一切都相当抽象,所以让我们看一个具体的例子。我们将定义一个helloworld构建器模板,它允许您强制使用标准方式来问候某人。然后,您可以使用此模板来问候许多工作中的许多人。安装这个插件,你会看到左边的"模板"菜单。您可以单击它并创建一个模板:创建一个生成器模板,该模板来自您用来创建约伯:那么在这里是主要的肉:有这里需要配置两个主要的东西:属性和一个转换器。定义模板时,首先要问自己:"当用户使用我的模板时,我希望他们输入什么?"这个问题的答案变成了属性。在这个helloworld构建器中,我们希望用户配置我们向谁打招呼,因此我们为此定义了一个名为"target"的属性。用户应该会看到一个文本字段,因此我们相应地选择类型。显示名称和内联帮助是不言而喻的。他们控制用户将看到什么,当他们编辑他们的自由风格的项目使用我们的新建设者。定义模板时,您应该问的第二个问题是,"它如何执行?"(或者更笼统地说,"它是如何映射到詹金斯所理解的术语的?"这个问题的答案就是变形金刚。在本教程中,我们的构建器将变成一个显示hello的shell脚本(而您的实际模板可能会变成一个完成一些实际工作的shell脚本,如构建组件、运行测试等),因此我们将选择"generateashell script to execute via Groovy"。在文本区域中,我们将填充构建步骤将要执行,但是要使用${…}形式的表达式(因为这是一个Groovy模板)。${target}引用我们上面定义的target属性的实际值,并且${build.fullDisplayName}是一个Groovy表达式,用于访问构建对象的getFullDisplayName()方法(返回生成的全名),该对象引用当前正在进行的生成。在${build.fullDisplayName}需要引用,因为这看起来像test#1,而且shell会将#解释为注释符号,除非您引用它。使用模板现在我们有了第一个构建器模板,让我们创建一个实际使用它的自由样式项目。回到Jenkins的首页,创建一个新的自由风格的项目。您将进入配置页面。詹金斯的这一部分应该已经很熟悉了你。什么时候你点击"添加构建步骤",你会看到新创建的"说你好世界"构建器。单击它,您将看到添加到您的项目中的sayhelloworld构建器。您可以看到在配置页面中定义的"target"属性。我把这个配置成向大介问好。如果我们保存它并运行它,你会发现它是有效的:[workspace]$/bin/sh-xe/tmp/hudson2322666548865862105.sh+从测试1向Kohsuke回音你好你好,来自测试1的Kohsuke完成:成功这允许你作为一个构建人来创建和限制你的东西被构建/测试的特定方式,并且你的用户可以从所有关于构建/测试如何完成的血腥细节中得到屏蔽。你可以在Jenkins和你的用户之间建立一个层,让Jenkins用你的用户理解的语言说话,而不是让他们用Jenkins能理解的语言说话。这是模板的要点之一插件。正在更改模板现在,让我们更改模板的定义,看看它如何影响实例。我们将返回到模板定义,方法是返回到顶部页面,单击左侧的"Templates"链接,然后单击右侧的"sayhelloworld"模板的配置图标。现在我们不再打招呼,而是说晚安。单击"保存"保存此新数据定义:现在,更新模板定义时,此模板的所有使用都会自动反映所做的更改。因此,在不重新访问freestyle作业的配置页面的情况下,让我们简单地安排另一个构建并查看其控制台输出:[workspace]$/bin/sh-xe/tmp/hudson2322666548865862105.sh+回音晚上好,从测试2到大介晚上好,从测试2到大冢完成:成功这是模板插件的另一点-当你更改定义时,这个模板的所有使用都会立即更新。因此,如果需要调整这些高级抽象概念如何映射到较低级别的命令序列,只需编辑一次并保存它。试试为了你自己,如果你喜欢你目前所读的(我希望你也喜欢),请玩这个。您可以下载Nectar并在单独的沙盒中使用它,也可以启用辅助更新中心在您的OSS-Jenkins部署上安装这些插件。还有很多关于模板插件的内容,我希望在几天后写出来。--大介