如何编写Jenkins管道功能以便能够将其用作选项?

时间:2017-05-17 11:59:05

标签: jenkins jenkins-pipeline

我想在我的Jenkins管道脚本中添加一般功能,类似于内置函数(timestamps,ansiColor)的功能:

options {
    timestamps()
    ansiColor 'xterm'
    // failureNotification() <- I want to add this
}

如何在脚本中编写函数以便可以将其用作选项?

1 个答案:

答案 0 :(得分:2)

目前,我并不相信您使用的声明性语法是可能的。你可以编写自己的Jenkins插件来做到这一点,但这可能会变得毛茸茸。

如果您愿意使用稍微复杂一点的语法,我会看一下这篇博文:https://jenkins.io/blog/2017/02/15/declarative-notifications/

基本上,您需要创建一个共享的groovy库并使用该步骤来管理您的通知步骤。这有几个步骤:

  1. 为共享库创建存储库。这应该有一个名为&#34; vars&#34;的文件夹,这是您的步骤和步骤文档的位置。
  2. 在共享库中创建一个步骤。使用camelCase和groovy扩展,创建一个文件名来描述您的步骤。这是你在Jenkinsfile中调用的内容。例如:sendFailureNotification.groovy
  3. 在该文件中,创建一个名为call的函数。您可以使用您想要的任何参数。例如:def call(){}
  4. 该呼叫功能是您的步骤逻辑&#34;。在您的情况下,听起来您会想要查看构建结果并使用您认为必要的任何通知步骤。
  5. 从文档中复制......&#39;设置&#34;全球管道库,&#34;我导航到&#34;管理詹金斯&#34; →&#34;配置系统&#34;在Jenkins网页用户界面中。在那里,在全球管道图书馆&#34;下,我添加了一个新图书馆。&#39;
  6. 将您的库导入Jenkins文件,如下所示:@Library('<library name you picked here>')
  7. 现在你应该能够在Jenkinsfile的末尾调用sendFailureNotification()。也许在这样的后期阶段?:

    发布{     失败{       sendFailureNotification()     }   }