Hudson Plugin 0.1.0

Added by Toshiyuki Ando almost 5 years ago

hello.

Redmine Hudson Plugin 0.1.0

What's hudson?

Huson is application for Continuous Integration.
Easy install configuration, and good ui.

More detail Meet Hudson

Features

Show Job List

  • show name, description, latest build ( build number, result, date ) and health report
    • bulid number linked to build result page
  • click [Build Now] request hudson to build
    • can't use authentication
  • Mr. hudson appears ( sorry, not emotional )

Show Build History

click note icon, show build history

  • show build number, result, date
    • bulid number linked to build result page
    • console icon linked to console page

Settings

  • can choose job
  • compact mode
    show only job name and latest build

Todo

  • more emotional
  • use authentication

How To Get

Repository( goolecode )
Download

Demo

You can see this plugin on our site
r-labs Hudson

Tested on Redmine 0.8.3 and current trunk.
Check it out, Any feedback or thoughts on useful features are welcome!

Thanks.

Replies (132)

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Really cool!
Thanks for that plugin.

Ideas from my side:
- Enhance the activities module with informations about builds of the configured jobs.
- Your Hudson plugin updates the redmine issue which are solved in a certain build. The commit message in SCM could contain a certain issue number and then you can write that build number to a custom field of the related issue or into a comment of it.
For example, you get the changeset for a build from url (https://hudson.jboss.org/hudson/job/devstudio-nightly-2.0.x/65/api/xml)
- Disable/enable a certain job from redmine.
- Parse test results from hudson and show a status on the project overview page (http://www.redmine.org/projects/redmine).
- Provide a possibility to copy artifacts of the last successfull build to the download section of the redmine project. Maybe you can provide a button "Copy artifacts" which makes this task.

What do you think about it?

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Thank you for your reply.

Jens Goldhammer wrote:

- Enhance the activities module with informations about builds of the configured jobs.

Team member said too.
I worry about to save many infomations to database. See and wait for a while.

- Your Hudson plugin updates the redmine issue which are solved in a certain build. The commit message in SCM could contain a certain issue number and then you can write that build number to a custom field of the related issue or into a comment of it.
For example, you get the changeset for a build from url (https://hudson.jboss.org/hudson/job/devstudio-nightly-2.0.x/65/api/xml)
- Parse test results from hudson and show a status on the project overview page (http://www.redmine.org/projects/redmine).

Good idea!
I think my plugin should work with redmine( issues, projects ) much more.
I will include these items in next version.

- Disable/enable a certain job from redmine.

Icon will indicate disable/enable next version.

- Provide a possibility to copy artifacts of the last successfull build to the download section of the redmine project. Maybe you can provide a button "Copy artifacts" which makes this task.

Sorry, I couldn't understand this.
Does it mean 'register artifacts or release-image to redmine-files' ?

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Toshiyuki Ando wrote:

Thank you for your reply.

Jens Goldhammer wrote:

- Enhance the activities module with informations about builds of the configured jobs.

Team member said too.
I worry about to save many infomations to database. See and wait for a while.

Yes, indeed- this is a problem. Maybe you can only insert summaries of the last 30 minutes. "Last build successfull (7 builds failed before) of hudson job xy".

- Your Hudson plugin updates the redmine issue which are solved in a certain build. The commit message in SCM could contain a certain issue number and then you can write that build number to a custom field of the related issue or into a comment of it.
For example, you get the changeset for a build from url (https://hudson.jboss.org/hudson/job/devstudio-nightly-2.0.x/65/api/xml)
- Parse test results from hudson and show a status on the project overview page (http://www.redmine.org/projects/redmine).

Good idea!
I think my plugin should work with redmine( issues, projects ) much more.
I will include these items in next version.

Cool!

- Disable/enable a certain job from redmine.

Icon will indicate disable/enable next version.

Thanks.

- Provide a possibility to copy artifacts of the last successfull build to the download section of the redmine project. Maybe you can provide a button "Copy artifacts" which makes this task.

Sorry, I couldn't understand this.
Does it mean 'register artifacts or release-image to redmine-files' ?

Redmine has a download module where a project can host its artifacts. On the other side, Hudson is able to keep artifacts for each build . It would be great to have a possibility to copy these artifacts from hudson to the download module. Let´s say, hudson builds a beta version of our software product and archives some files. These files.

Thanks,
Jens

RE: Hudson Plugin 0.1.0 - Added by Eric Davis almost 5 years ago

This looks good. I might have to try out Hudson now (using Integrity currently).

Eric

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

You should definitly give it a try. IMO, it is one of the best ci-servers out there.
For more information look at the wiki http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson.

There is also a plugin for rake use (http://wiki.hudson-ci.org/display/HUDSON/Rake+plugin).

RE: Hudson Plugin 0.1.0 - Added by Konstantin Zaitsev almost 5 years ago

Very useful plugin, thank you.

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Attached the german translation.

de.yml Magnifier (1.14 KB)

RE: Hudson Plugin 0.1.0 - Added by Florian Bartels almost 5 years ago

Here is an improved german translation.

de.yml Magnifier - German translation (1.15 KB)

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Jens Goldhammer wrote:

Team member said too.
I worry about to save many infomations to database. See and wait for a while.

Yes, indeed- this is a problem. Maybe you can only insert summaries of the last 30 minutes. "Last build successfull (7 builds failed before) of hudson job xy".

Fum... There's nothing to be concerned about.
I'll have to get back to you on that.

- Provide a possibility to copy artifacts of the last successfull build to the download section of the redmine project. Maybe you can provide a button "Copy artifacts" which makes this task.

Sorry, I couldn't understand this.
Does it mean 'register artifacts or release-image to redmine-files' ?

Redmine has a download module where a project can host its artifacts. On the other side, Hudson is able to keep artifacts for each build . It would be great to have a possibility to copy these artifacts from hudson to the download module. Let´s say, hudson builds a beta version of our software product and archives some files. These files.

I see. I think it is interesting feature. I'm worried about artifact on project.
But, i have never used Hudson's feature save artifact :<
Could you give me a concrete example (about copy artifacts from hudson to redmine) ?

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Jens Goldhammer wrote:

Attached the german translation.

Florian Bartels wrote:

Here is an improved german translation.

Thanks! But, i can't understand german.
I choose "improved".

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Toshiyuki Ando wrote:

Jens Goldhammer wrote:

Team member said too.
I worry about to save many infomations to database. See and wait for a while.

Yes, indeed- this is a problem. Maybe you can only insert summaries of the last 30 minutes. "Last build successfull (7 builds failed before) of hudson job xy".

Fum... There's nothing to be concerned about.
I'll have to get back to you on that.

Ok.

- Provide a possibility to copy artifacts of the last successfull build to the download section of the redmine project. Maybe you can provide a button "Copy artifacts" which makes this task.

Sorry, I couldn't understand this.
Does it mean 'register artifacts or release-image to redmine-files' ?

Redmine has a download module where a project can host its artifacts. On the other side, Hudson is able to keep artifacts for each build . It would be great to have a possibility to copy these artifacts from hudson to the download module. Let´s say, hudson builds a beta version of our software product and archives some files. These files.

I see. I think it is interesting feature. I'm worried about artifact on project.
But, i have never used Hudson's feature save artifact :<
Could you give me a concrete example (about copy artifacts from hudson to redmine) ?

For example, we are developing an eclipse rcp application and our build process includes creating a zip-file which contains the complete application. This zip-file will be used by our testers to test new features and fixed bugs. Currently the testers have an account at our hudson instance and can fetch the newest application zip-file from it. In my eyes, redmine would be the better place to save these artifacts because the testers have already an account for it.

For a real available example look at http://deadlock.netbeans.org/hudson/job/ruby/. So you can download one artifact via url http://deadlock.netbeans.org/hudson/job/ruby/lastSuccessfulBuild/artifact/nbbuild/NetBeans-dev-ruby-2782-on-090608-full.zip. These artifacts can be configured for each projects in Hudson by giving an ant fileset pattern to include those files which match that pattern.

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Toshiyuki Ando wrote:

Jens Goldhammer wrote:

Attached the german translation.

Florian Bartels wrote:

Here is an improved german translation.

Thanks! But, i can't understand german.
I choose "improved".

Yes, it´s ok. The improved version is from my colleague :-)

Hudson Plugin 0.1.0 - Added by Péter Major almost 5 years ago

Hi!

I'm trying to use the svn version (or the downloadable zip file), but it just won't work.
It looks like there is some SSL problem (our hudson is on https), and the production.log sais:

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
    /usr/local/lib/ruby/1.8/net/http.rb:586:in `connect'
    /usr/local/lib/ruby/1.8/net/http.rb:586:in `connect'
    /usr/local/lib/ruby/1.8/net/http.rb:553:in `do_start'
    /usr/local/lib/ruby/1.8/net/http.rb:542:in `start'
    /usr/local/lib/ruby/1.8/open-uri.rb:242:in `open_http'
    /usr/local/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
    /usr/local/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
    /usr/local/lib/ruby/1.8/open-uri.rb:162:in `catch'
    /usr/local/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
    /usr/local/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
    /usr/local/lib/ruby/1.8/open-uri.rb:518:in `open'
    /usr/local/lib/ruby/1.8/open-uri.rb:30:in `open'
    /vendor/plugins/redmine_hudson/app/controllers/hudson_settings_controller.rb:73:in `find_hudson_jobs'
    /vendor/plugins/redmine_hudson/app/controllers/hudson_settings_controller.rb:43:in `joblist'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1166:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1166:in `perform_action_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:579:in `call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:572:in `perform_action_without_benchmark'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'

There's also a bug, which is very annoying:
If I'm trying to localize the lang file, the webrick server is killing himself (God knows why) at the first any(!!!) request to the Redmine, but the log doesn't contains any information about it.
I attached the 'killer' lang file, hope it helps.

I'm using Redmine ver 0.8.4

hu.yml Magnifier - The lang file, which kills the webrick server (1.11 KB)

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Jens Goldhammer wrote:

I see. I think it is interesting feature. I'm worried about artifact on project.
But, i have never used Hudson's feature save artifact :<
Could you give me a concrete example (about copy artifacts from hudson to redmine) ?

For example, we are developing an eclipse rcp application and our build process includes creating a zip-file which contains the complete application. This zip-file will be used by our testers to test new features and fixed bugs. Currently the testers have an account at our hudson instance and can fetch the newest application zip-file from it. In my eyes, redmine would be the better place to save these artifacts because the testers have already an account for it.

For a real available example look at http://deadlock.netbeans.org/hudson/job/ruby/. So you can download one artifact via url http://deadlock.netbeans.org/hudson/job/ruby/lastSuccessfulBuild/artifact/nbbuild/NetBeans-dev-ruby-2782-on-090608-full.zip. These artifacts can be configured for each projects in Hudson by giving an ant fileset pattern to include those files which match that pattern.

Thanks! I see it now
This is a uri to get information about Hudson's artifact

http://deadlock.netbeans.org/hudson/job/ruby/api/xml?depth=1&xpath=//build[1]

First of all, I try to show artifact's url.

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Péter Major wrote:

Hi!

I'm trying to use the svn version (or the downloadable zip file), but it just won't work.
It looks like there is some SSL problem (our hudson is on https), and the production.log sais:

Sorry. Plugin doesn't support authentication.
I try to build it, and Basic Authentication is OK. ( not commited )
But SSL not yet. I looked for websites, SSL is difficult for me. ( how to get ca_file ? )

There's also a bug, which is very annoying:
If I'm trying to localize the lang file, the webrick server is killing himself (God knows why) at the first any(!!!) request to the Redmine, but the log doesn't contains any information about it.
I attached the 'killer' lang file, hope it helps.

I'm using Redmine ver 0.8.4

Perhaps Character encoding problem. Try UTF-8.

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

New Feature

  • Plugin supports basic-authentication and https-connection.
    Https-connection is untested. ( I don't have environment )
  • Modified layout

repository
download

Here is a NetBeansProject
Getting information takes a few minutes. It's too long!

Thanks.

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

I've used japanese, sorry.

RE: Hudson Plugin 0.1.0 - Added by Péter Major almost 5 years ago

Toshiyuki Ando wrote:

  • Plugin supports basic-authentication and https-connection.
    Https-connection is untested. ( I don't have environment )
  • Modified layout

First of all, thank you for trying, but it's sadly not working, the error message is:
Http error Net::HTTPBadResponse - wrong status line: ""
There is no further info in production log.

Improvement idea: the password field is showing now in plain text the pass, '*****' would be better ;)

Keep up with the good work.

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Péter Major wrote:

First of all, thank you for trying, but it's sadly not working, the error message is:
Http error Net::HTTPBadResponse - wrong status line: ""
There is no further info in production log.

I fixed https part. Could you try it?
Download

Improvement idea: the password field is showing now in plain text the pass, '*****' would be better ;)

That's correct!

Keep up with the good work.

Thanks. I try my best.

RE: Hudson Plugin 0.1.0 - Added by Péter Major almost 5 years ago

It works!

Many thanks for the quick fix.

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Great. Keep up the good work!!

RE: Hudson Plugin 0.1.0 - Added by James Turnbull almost 5 years ago

Great work! ++ good.

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Hi, Jens.

Toshiyuki Ando wrote:

- Your Hudson plugin updates the redmine issue which are solved in a certain build. The commit message in SCM could contain a certain issue number and then you can write that build number to a custom field of the related issue or into a comment of it.

I think plugin displays a message looking something like this.

  • add build result (success/failure)
  • add build message (jobname,number,date)

This feature requires build info, so plugin may save a build info to database. (will work for show activities)
So what do you think?

RE: Hudson Plugin 0.1.0 - Added by Jens Goldhammer almost 5 years ago

Hi Toshiyuki Ando,

Toshiyuki Ando wrote:

Hi, Jens.

Toshiyuki Ando wrote:

- Your Hudson plugin updates the redmine issue which are solved in a certain build. The commit message in SCM could contain a certain issue number and then you can write that build number to a custom field of the related issue or into a comment of it.

I think plugin displays a message looking something like this.

  • add build result (success/failure)
  • add build message (jobname,number,date)

Really cool. I think this is a great way to indicate the status of the project code.
In my eyes, any job (maybe two or more) should be displayed which builds this code. For example, we have a hudson job which builds our code and makes some small unit tests. Another hudson job starts at night and makes some big integration tests. So the build result should not be displayed at the top of the revision box. Instead it should be displayed in front of each build message(jobname, number, date). Please look at the screenshot attached for further details.

This feature requires build info, so plugin may save a build info to database. (will work for show activities)

So what do you think?

How do you want to implement this?
In my eyes, the hudson plugin has to automatically request in background the hudson instance for new builds of the configured jobs in each project. Maybe you can build this via a timer which can be configured in hudson settings (request all 5|10|20|30... minutes).

In this case, you have to store information which build of which job is processed already and which ones are new and have to be processed. For example, you can use the tag buildnumber in the xml representation ((https://hudson.jboss.org/hudson/job/devstudio-nightly-2.0.x/api/xml)) of a hudson project to get the current build number and compare this to the number stored in database. I think parsing the last changes of a hudson job and get out the revision/bug number is not too hard.

What about the amount of data?
Ok, let us say we have three jobs for a redmine project. Two jobs are builded several times (20-30 times) one day. The third job is only builded once at night. The project duration is 200 working days year. So there are 6200 (200 days * 30 builds * 2 jobs + 200 days *1 build *1 job) entries in the database for this project. Hmm, I think it is ok.

What do you think?

Thanks,
Jens

RE: Hudson Plugin 0.1.0 - Added by Toshiyuki Ando almost 5 years ago

Thanks!

Jens Goldhammer wrote:

In my eyes, any job (maybe two or more) should be displayed which builds this code. For example, we have a hudson job which builds our code and makes some small unit tests. Another hudson job starts at night and makes some big integration tests. So the build result should not be displayed at the top of the revision box. Instead it should be displayed in front of each build message(jobname, number, date). Please look at the screenshot attached for further details.

That's right. Thank you for your advice.
I'll show message like a screenshot.

In my eyes, the hudson plugin has to automatically request in background the hudson instance for new builds of the configured jobs in each project. Maybe you can build this via a timer which can be configured in hudson settings (request all 5|10|20|30... minutes).

Oh. I don't know how to request in background using Redmine ;<
I guess repository module request to SCM, when someone access repository tab. I'll follow this.
Do you know how to request in background?

What about the amount of data?
Ok, let us say we have three jobs for a redmine project. Two jobs are builded several times (20-30 times) one day. The third job is only builded once at night. The project duration is 200 working days year. So there are 6200 (200 days * 30 builds * 2 jobs + 200 days *1 build *1 job) entries in the database for this project. Hmm, I think it is ok.

Thanks for in-depth explanation.
If i add changeset to entries, not a big thing :)

1 2 3 ... 6 (1-25/132)