Skip to end of metadata
Go to start of metadata

Plugin Information

View Build-Publisher on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

What does it do?

 This plugin allows records from one Jenkins to be published on another Jenkins.The typical use case is for you to run builds within the firewall, then send the results to another Jenkins which is facing the outside world.

How it works?

For the convention, let's call the Jenkins that's doing builds private Jenkins, and let's call the Jenkins that's just broadcasting build results as public Jenkins. The following pieces are involved to make this work:

  • Both private and public Jenkins need to have the build-publisher plugin installed. This plugin makes Jenkins capable of sending records to public Jenkins.
  • Private Jenkins is configured with information about public Jenkins instance(s) that it wants to send data to.
  • Jobs on private Jenkins need to opt-in to the publication (through the job configuration.)

Once this is set up, build records from private Jenkins is sent to public Jenkins, through HTTP. If a corresponding job does not exist, it will be automatically created on the public Jenkins and kept in sync with the private Jenkins.

For this arrangement to work correctly, two Jenkins need to have more or less the same version of plugins.

Configuration and usage

Public Jenkins instance is configured on the global configuration page. You have to specify name, URL, administrator username and password, as shown on the following screenshot.


Check "Publish build" on the job configuration page int the "Post-build Actions" section to mark the project for publishing:


To check the status of publishing go to "Dashboard" -> "Manage Jenkins" -> "Build publishing status". In case of any problem during build transmission, you can restart the publishing thread or reschedule interrupted transmission (otherwise the thread waits for 10 minutes and tries again).


Proxy

Proxy support is available since ver. 1.12. Proxy settings is loaded from Update center setup. If you do any changed to proxy setup, you need to reload proxy setup in Build publisher section global Jenkins configuration page in order to Build publisher reflect the changes (or restart Jenkins:-).

Missing features and known bugs

  • Views don't get synchronized automatically
  • The plugin isn't able to deal with matrix projects whose configurations (axis) have changed (I had problems reproducing this lately)

Change Log

Upcoming changes
Version 1.22 (2017/10/23)
Version 1.20 (2015/01/28)
Version 1.19 (2014/05/10)
Version 1.18 (2014/04/09)
  • BuildPublisher reports "URL doesn't exist" after upgrade Remote Jenkins to 1.535 (JENKINS-20067)
Version 1.17 (2013/05/14)
Version 1.16 (2013/04/30)
  • Create matrix sub-job if doesn't exists (pull #2)
  • Proper encoding of URLs of jobs (pull #3)
Version 1.15 (2013/02/28)
  • Update for changes required by Jenkins core 1.503 (JENKINS-16993)
Version 1.14 (2013/02/26)
  • Handle error states when job was already deleted or matrix configuration doesn't exists yet (pull #2)
  • Proper URL encoding (pull #1)
Version 1.13 (2012/09/05)
  • Update for changes required by Jenkins core 1.463 (JENKINS-13857)
  • Close output stream if some exception happens
Version 1.12 (2012/03/28)
Version 1.11 (2011/09/21)
Version 1.10 (2010/09/08)
  • Fix for JENKINS-7330
Version 1.9 (2010/08/05)
  • Added option to disable triggers on public Hudson (JENKINS-3802)
Version 1.8 (2009/12/28)
  • Fix link to matrix configuration
  • Update uses of deprecated APIs

12 Comments

  1. Hi,

    The Build is also launched on "public hudson server" : is there a way of preventing the build to also be triggered on the "publication server" ?

    I have a build that is done on "hudson server A" and publishes the build to "public server B" . Unfortunatly, once published, Server B also trioes to launch a build on it's own. How do i stop that?

    thnX

    1. I set up two jobs; one as a trigger, one as a worker. The trigger has the worker listed as a downstream project. I only publish the worker.

  2. Unknown User (anuj.shah@detica.com)

    Hi,

    I am using the Plot Plugin and the csv plot files are not published with the build.

  3. Hi,
    Is there a way to publish to multiple public hudson using this plug-in in a single job?? We can configure multiple public hudson in the plugin configuration but cant select multiple public hudsons in job configuration. Any tips, highly appreciated.

    Thanks
    -Ragesh
    Hudson Team, Sonyericsson

  4. Unknown User (gavin.davies@boxuk.com)

    Thanks for a really useful plugin!

    I have just one issue with it. Our build server launches a build on another Hudson server, which then publishes the build back to the master. The build appears on the master server, and it still shows the "build" button. It would be great if the build button were hidden for builds which have been published from another server as this is potentially confusing.

    Thanks,

    - Gav

  5. Congrats on a very useful plugin. We are using it a lot!  Unfortunately we are not able to use it when a slave is behind a proxy/firewall. While I'm at it adding NTLM support would also be great!

    I'm sure many people working on corporate environments will have this kind of issues. Could you recommend a work around?

    Regards!

  6. Great Plugin.

    We would like to have different "Discard old build" settings on internal versus public master.

    With the plugin enabled each build is sent across to public, but we would like to keep a longer history on public. For instance we would select to keep 3 days of builds on internal, but 30 days on public. We think that is the intension behind the  advanced settngs on "Publish build" post build step on the internal's job configuration.Can you confirm that is the intention for the dialog ?

    Unfortunately we can not test due to issue JENKINS-13857.

  7. I have two jenkins instances in intranet, the jobs are synced after publich.

    But why can't I find the result on the 2nd jenkins? Must it be public jenkins?

  8. I am trying to avoid having to supply a administrative password and would rather have a limited access user account that the publisher uses. Is there anyway to used the matrix based security to apply limited permissions to a user specific to the publisher and have the master use that instead of administrator? 

    Thanks

  9. Trying to set up publishing from a slave to master.

    Plain HTTP auth used on slave.  

    From slave command-line 'curl -vv -u user:pass http://master:port' works okay.

    Getting ERROR: http://master:port/ is not Hudson (Forbidden)

    jenkins master is 2.7.4, jenkins slave is 2.32.1 -  could that be a problem ?  

    What does this error mean and how can it be solved?

    Build publishing

     

    Public Hudson server

     

     

     

     

     

     

    URL

     

     

     

    http://master:port/ is not Hudson (Forbidden)

     

    1. I see that the Authorization: header is not sent in the build publisher GET request. 

      The response is HTTP/1.1 403 Forbidden. Not 401 unauthorized.