在Jenkins 2.0 multibranch管道上使用stash notifier插件

时间:2016-05-11 09:54:46

标签: jenkins bitbucket-server jenkins-2

我不知道如何在multibranch管道上设置存储通知程序插件。 配置页面没有'构建后操作部分'。

3 个答案:

答案 0 :(得分:8)

Stash Notifier现在支持版本1.11的管道。

来自examples in the README

node {
    step([$class: 'StashNotifier'])         // Notifies the Stash Instance of an INPROGRESS build

    try {
        // Do stuff
        currentBuild.result = 'SUCCESS'     // Set result of currentBuild !Important!
    } catch(err) {
        currentBuild.result = 'FAILED'      // Set result of currentBuild !Important!
    }

    step([$class: 'StashNotifier'])         // Notifies the Stash Instance of the build result
}

虽然它说设置currentBuild.result是“!重要!”,但我的经验是,如果您的步骤尚未执行此操作,则情况就是如此。例如,如果您有sh "false",则不需要将其包装在try / catch中,因为sh步骤将在非零退出代码上将构建结果设置为失败。只有在需要自定义成功/失败逻辑时才需要这样做。

答案 1 :(得分:1)

我认为它仍然与管道或多分支管道作业类型不兼容。

我认为Abhijeet Kamble意味着您可以使用http客户端或curl自行发送更新。

这样的事情:

withCredentials([[$class          : 'UsernamePasswordMultiBinding', credentialsId: "$env.componentCredentialsId",
          usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
   writeFile file: 'build.json', text: "{\"state\": \"SUCCESSFUL\", \"key\": \"${env.JOB_NAME}\", \"name\": \"${env.BUILD_TAG}\", \"url\": \"${env.BUILD_URL}\"}"
   sh '''curl -u $USERNAME:$PASSWORD -H "Content-Type: application/json" -X POST $URL -d @build.json'''
}

请注意,这是一个非常简单的示例,不像插件那么复杂。

答案 2 :(得分:0)

使用Stash Notifier将其添加为Jenkins构建作业配置中的Post Step。

在Jenkins作业配置中,转到Post-build Actions部分,单击Add post-build action并选择Notify Stash Instance 输入Stash基本网址e. g. http://localhost:7990 or http://my.company/stash.

如果有疑问,请转到您当地的Stash服务器并检查浏览器中的URL。网址http://georg@localhost:7991/projects e。 G。显示服务器基本URL,在这种情况下为http://localhost:7991。 使用凭据插件选择存储凭据。