5

我不知道如何在多分支管道上设置存储通知器插件。配置页面没有“构建后操作部分”。

4

3 回答 3

8

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

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步骤会将构建结果设置为在非零退出代码上失败。仅当您需要自定义成功/失败逻辑时才需要这样做。

于 2016-11-02T17:50:19.877 回答
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'''
}

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

于 2016-06-08T08:25:04.140 回答
0

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

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

如有疑问,请转到本地 Stash 服务器并检查浏览器中的 URL。例如,URLhttp://georg@localhost:7991/projects显示了服务器基本 URL,http://localhost:7991在这种情况下就是这样。使用凭据插件选择存储凭据。

于 2016-05-11T11:14:14.040 回答