Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-46250

Allow Bitbucket build status text to be overridden

      Currently the text sent to Bitbucket as build status for a commit is hardcoded with messages that could be misleading (such as "This commit has test failures") if the job uses build statuses differently (i.e. UNSTABLE happens to mean something else).  At the very least the text should say "The commit is unstable".

      https://github.com/jenkinsci/bitbucket-branch-source-plugin/blob/master/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketBuildStatusNotifications.java#L73

       

      if (Result.SUCCESS.equals(result)) {
      status = new BitbucketBuildStatus(hash, "This commit looks good", "SUCCESSFUL", url, key, name);
      } else if (Result.UNSTABLE.equals(result)) {
      status = new BitbucketBuildStatus(hash, "This commit has test failures", "FAILED", url, key, name);
      } else if (Result.FAILURE.equals(result)) {
      status = new BitbucketBuildStatus(hash, "There was a failure building this commit", "FAILED", url, key,
      name);
      } else if (result != null) { // ABORTED etc.
      status = new BitbucketBuildStatus(hash, "Something is wrong with the build of this commit", "FAILED", url,
      key, name);
      } else {
      status = new BitbucketBuildStatus(hash, "The tests have started...", "INPROGRESS", url, key, name);
      }
      

        

          [JENKINS-46250] Allow Bitbucket build status text to be overridden

          Bitbucket Branch Source Plugin 2.2.4 makes Bitbucket display the job/branch name in addition to the build number.
          The other two parts of this issue have not been implemented, AFAICT.

          Kalle Niemitalo added a comment - Bitbucket Branch Source Plugin 2.2.4 makes Bitbucket display the job/branch name in addition to the build number. The other two parts of this issue have not been implemented, AFAICT.

          Nuno Costa added a comment -

          I was also interested in the feature of disabling the build status to be sent to Bitbucket.

          My use case is that I have a Jenkins local instance on my laptop, for testing purpuses and I want to avoid to send my build status to the projects.

          This way, BB would only display build status from the PROD Jenkins instance.

          Nuno Costa added a comment - I was also interested in the feature of disabling the build status to be sent to Bitbucket. My use case is that I have a Jenkins local instance on my laptop, for testing purpuses and I want to avoid to send my build status to the projects. This way, BB would only display build status from the PROD Jenkins instance.

          I likewise have separate Jenkins instances for production and testing. When both instances had projects with identical names, the testing instance (that had an agent in a slower machine) usually sent its notification later and overwrote the build status of the production instance in Bitbucket Server. I ended up selecting "Restrict project naming" in the testing instance and enforcing a prefix. Still, disabling the notifications would be a useful feature, so that problems in the testing instance don't show up as errors in the commit history in Bitbucket Server.

          I wonder if this issue should be split, though.

          • overriding the status text
          • adding the project/branch names to the link text (already done)
          • disabling build status notifications altogether (at Jenkins instance level or at project level?)
          • adding a Jenkins instance identifier to the notification key (low priority; workaround: change the project name)
          • adding a Jenkins instance identifier to the link text (low priority; workaround: change the project name)

          Kalle Niemitalo added a comment - I likewise have separate Jenkins instances for production and testing. When both instances had projects with identical names, the testing instance (that had an agent in a slower machine) usually sent its notification later and overwrote the build status of the production instance in Bitbucket Server. I ended up selecting "Restrict project naming" in the testing instance and enforcing a prefix. Still, disabling the notifications would be a useful feature, so that problems in the testing instance don't show up as errors in the commit history in Bitbucket Server. I wonder if this issue should be split, though. overriding the status text adding the project/branch names to the link text (already done) disabling build status notifications altogether (at Jenkins instance level or at project level?) adding a Jenkins instance identifier to the notification key (low priority; workaround: change the project name) adding a Jenkins instance identifier to the link text (low priority; workaround: change the project name)

          pixman20 added a comment -

          Agreed, I'm shrinking the scope of this issue to be only:

          • Overriding the status text

          This is currently the only issue within the scope of this plugin without any workaround as previously mentioned.  The not-so-proper workaround that I've had to do is to duplicate the java plugin code in groovy and use it as a shared library function in my pipeline code and call that whenever I want to update Bitbucket notifications.  This requires disabling the current notifications.

           

          Regarding that, I realize now disabling the build status notifications is outside the scope of this plugin and would need to be a separate plugin (I actually created one that I'm currently using, just need to publish it)

          pixman20 added a comment - Agreed, I'm shrinking the scope of this issue to be only: Overriding the status text This is currently the only issue within the scope of this plugin without any workaround as previously mentioned.  The not-so-proper workaround that I've had to do is to duplicate the java plugin code in groovy and use it as a shared library function in my pipeline code and call that whenever I want to update Bitbucket notifications.  This requires disabling the current notifications.   Regarding that, I realize now disabling the build status notifications is outside the scope of this plugin and would need to be a separate plugin (I actually created one that I'm currently using, just need to publish it)

          pixman20 added a comment -

          ncosta, You can clone this and build the hpi (not connected to the Jenkins public plugin repo at this time)
          https://github.com/pixman20/bitbucket-branch-source-disable-status-plugin 

          pixman20 added a comment - ncosta , You can clone this and build the hpi (not connected to the Jenkins public plugin repo at this time) https://github.com/pixman20/bitbucket-branch-source-disable-status-plugin  

          Nuno Costa added a comment -

          pixman20, thanks for the code.

          I will probably test it on my jenkins instance.

          It would be nice to try to push it upstream

           

          Nuno Costa added a comment - pixman20 , thanks for the code. I will probably test it on my jenkins instance. It would be nice to try to push it upstream  

          Another "disable-bitbucket-multibranch-status" plugin was announced in JENKINS-36755. There is a hosting request, too. The code looks very similar to pixman20's "bitbucket-branch-source-disable-status" plugin but the user interface is worded differently.

          Kalle Niemitalo added a comment - Another "disable-bitbucket-multibranch-status" plugin was announced in JENKINS-36755 . There is a hosting request, too. The code looks very similar to pixman20 's "bitbucket-branch-source-disable-status" plugin but the user interface is worded differently.

          Michel Zanini added a comment -

          I have found a plugin that is published and does this:
          https://github.com/jenkinsci/skip-notifications-trait-plugin

          If any one reads this you can find it there, I have not tested it yet, but it seems that will work.

          Michel Zanini added a comment - I have found a plugin that is published and does this: https://github.com/jenkinsci/skip-notifications-trait-plugin If any one reads this you can find it there, I have not tested it yet, but it seems that will work.

          Kalle Niemitalo added a comment - - edited

          See also [BSERV-3857] Add 'Unstable' Build Status, in Atlassian's Bitbucket Server bug tracker.

          (Edit: My original comment belongs to JENKINS-36755 instead.)

          Kalle Niemitalo added a comment - - edited See also [BSERV-3857] Add 'Unstable' Build Status , in Atlassian's Bitbucket Server bug tracker. (Edit: My original comment belongs to JENKINS-36755 instead.)

          Dee Kryvenko added a comment -

          I have created a separate https://issues.jenkins.io/browse/JENKINS-65741 to cover part of what being discussed here in the comments - adding Jenkins instance identifier to the commit status. Changing the project name workaround doesn't always apply - i.e. Bitbucket Project Folder you do not really control names of jobs. For JENKINS-65741 I have already submitted a PR https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/454.

          Dee Kryvenko added a comment - I have created a separate https://issues.jenkins.io/browse/JENKINS-65741  to cover part of what being discussed here in the comments - adding Jenkins instance identifier to the commit status. Changing the project name workaround doesn't always apply - i.e. Bitbucket Project Folder you do not really control names of jobs. For  JENKINS-65741 I have already submitted a PR  https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/454 .

            Unassigned Unassigned
            pixman20 pixman20
            Votes:
            5 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: