Skip to end of metadata
Go to start of metadata

Plugin Information

View ChuckNorris on the plugin site for more information.

Displays a picture of Chuck Norris (instead of Jenkins the butler) and a random Chuck Norris 'The Programmer' fact on each build page.

Download & Installation

You can preferably install this plugin directly from the Plugins Update Center, or if need be by downloading the latest .hpi and install it from the Manage Plugins menu.

Usage

  1. After installing the plugin, go to job configuration page, a checkbox with the text 'Activate ChuckNorris' should appear.
  2. Tick the checkbox and save the configuration. For freestyle job, Chuck Norris image (along with a random quote) will appear on the job page.
  3. Run a build. After it's completed, Chuck Norris image (and the random quote) should also appear on the build page. This is applicable for both freestyle and Maven jobs.

Screenshots



FAQ

Q: I'm getting NonExistentFieldException in Hudson log file, how to fix this problem?
hudson.util.RobustReflectionConverter doUnmarshal
WARNING: Skipping a non-existent field fact
com.thoughtworks.xstream.converters.reflection.NonExistentFieldException: No such field hudson.plugins.chucknorris.RoundhouseAction.fact
A: Upgrade to ChuckNorris Plugin 0.4 or newer. That should get rid of the exception message.

Testimonials

Credits

Chuck Norris 'The Programmer' facts and Emotional Hudson Plugin.

27 Comments

  1. Unknown User (gregmoore)

    Me thinks some one has way way too much time on there hands. LOL

    whats next Bruce Lee?

    1. Just a plugin I wrote when I first learnt how to write a Hudson plugin :).

      Honouring Bruce Lee is implicitly implied via ChuckNorris Plugin since Chuck himself once said "Lee, pound for pound, might well have been one of the strongest men in the world, and certainly one of the quickest."

      BruceLee Plugin would be similar to ChuckNorris Plugin, only the images more bad ass, and the quotes more philosophical.

  2. I've installed it, but it only shows "happy" Chuck Norris, and no statement about Chuck Norris' abilities. What is the trigger for it to change image and/or text?

    1. The image depends on the build result.
          Success -> happy Chuck
          Warning/Aborted -> alert Chuck
          Failure -> badass Chuck

      The text is random.

  3. Unknown User (graham.keogh@fineos.com)

    Doesn't seem to work with 1.318. I get the text displayed but no graphics.

    Looking at the source its pulling it from /hudson/plugin/chucknorris/images yet you can't hit this!!!

    1. I tested the plugin with 1.318 and it worked fine.
      My suggestion is to reinstall the plugin and restart Hudson, or perhaps upgrade both Hudson and ChuckNorris plugin to the latest versions.

      Note that the image doesn't appear on the job page for Maven projects, it appears on the build pages. For freestyle projects, the image appears on job and build pages.

  4. Unknown User (j.godau@schuetze-berlin.de)

    Upgraded to Hudson 1.341 and am getting lots of errors like:

    19.01.2010 15:00:43 hudson.util.RobustReflectionConverter doUnmarshal
    WARNUNG: Skipping a non-existent field fact
    com.thoughtworks.xstream.converters.reflection.NonExistentFieldException: No such field hudson.plugins.chucknorris.RoundhouseAction.fact
            at com.thoughtworks.xstream.converters.reflection.FieldDictionary.field(FieldDictionary.java:106)
            at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.getFieldType(PureJavaReflectionProvider.java:152)
            at hudson.util.RobustReflectionConverter.determineType(RobustReflectionConverter.java:326)
            at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:217)
            at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:172)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
            at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
            at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
            at hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:82)
            at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
            at hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:73)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
            at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
            at hudson.util.RobustReflectionConverter.unmarshallField(RobustReflectionConverter.java:261)
            at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:221)
            at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:172)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
            at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
            at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
            at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
            at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
            at hudson.util.XStream2.unmarshal(XStream2.java:70)
            at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
            at hudson.XmlFile.unmarshal(XmlFile.java:148)
            at hudson.model.Run.<init>(Run.java:252)
            at hudson.model.AbstractBuild.<init>(AbstractBuild.java:151)
            at hudson.model.Build.<init>(Build.java:97)
            at hudson.model.FreeStyleBuild.<init>(FreeStyleBuild.java:41)
            at sun.reflect.GeneratedConstructorAccessor23.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
            at hudson.model.AbstractProject.loadBuild(AbstractProject.java:813)
            at hudson.model.AbstractProject$1.create(AbstractProject.java:209)
            at hudson.model.AbstractProject$1.create(AbstractProject.java:207)
            at hudson.model.RunMap.load(RunMap.java:221)
            at hudson.model.AbstractProject.onLoad(AbstractProject.java:207)
            at hudson.model.Project.onLoad(Project.java:86)
            at hudson.model.Items.load(Items.java:107)
            at hudson.model.Hudson$12.run(Hudson.java:2108)
            at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
            at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
            at hudson.model.Hudson$3.runTask(Hudson.java:648)
            at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
            at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
            at java.lang.Thread.run(Thread.java:619)

    I've tried to uninstall and reinstall the ChuckNorris Plugin but it doesn't help - what causes this and how can I prevent it from happening??

    Jack...

    1. I just tested ChuckNorris Plugin 0.3 on Hudson 1.338, which was then upgraded to 1.341, and the plugin worked alright without any exception.

      What version of Hudson did you upgrade from?
      Did you upgrade ChuckNorris Plugin as well?
      What version of ChuckNorris Plugin are you using?
      Did you upgrade ChuckNorris Plugin as well?
      Did you run the build on a slave machine?

      Could you also try removing the following lines from the job's config.xml

          <hudson.plugins.chucknorris.CordellWalkerRecorder>
            <factGenerator/>
          </hudson.plugins.chucknorris.CordellWalkerRecorder>

      then restart Hudson, reactivate ChuckNorris on the job configuration page, and run another build.
      If you still see the same error, please attach or email me (cliffano@gmail.com) your job config.xml (don't forget to filter any non-public info).

    2. Ok, I managed to reproduce the warning message (please note that it's a warning and not an error)

      1. Run a build with ChuckNorris Plugin 0.1 or 0.2, this will appear in the job's build.xml
          <hudson.plugins.chucknorris.RoundhouseAction>
            <style>BAD_ASS</style>
            <fact>Chuck Norris can access private methods.</fact>
          </hudson.plugins.chucknorris.RoundhouseAction>

      2. Upgrade to ChuckNorris Plugin 0.3, run a build, this will appear in build.xml
          <hudson.plugins.chucknorris.RoundhouseAction>
            <mStyle>BAD_ASS</mStyle>
            <mFact>Chuck Norris can access private methods.</mFact>
          </hudson.plugins.chucknorris.RoundhouseAction>

      If you restart Hudson and view build#1, you'll see NonExistentFieldException warning because field style and fact no longer exist as they're replaced by mStyle and mFact in 0.3 (my bad for making this mistake of changing the field names, I should've been more careful).
      This means build#1 ignores ChuckNorris Plugin and won't display Chuck's image and quote.
      Meanwhile, build#2 is ok and displays the image and quote as normal.

      I agree that this is annoying and the long stack trace really pollutes the log file.

      A quick google search shows that others suffer similar issue:
      - PerforcePlugin http://wiki.jenkins-ci.org/display/HUDSON/Perforce+Plugin
      - GitSCM http://stackoverflow.com/questions/534308/how-do-you-set-up-hudson-to-work-with-git
      - SCMTrigger http://markmail.org/message/rwyzpv5op7y5x4bk#query:hudson%20NonExistentFieldException+page:1+mid:i6emx2rz3y3jw62a+state:results

      Not nice. I'll see if there's a way to fix this in the next version.

      If you really want to get rid of those warning messages right now, the simplest thing to do is to do mass replace of <style> to <mStyle> and <fact> to <mFact> within <hudson.plugins.chucknorris.RoundhouseAction>, or remove <hudson.plugins.chucknorris.RoundhouseAction> completely from the old builds.

      Update: v0.4 should preserve backward compatibility to version 0.1 and 0.2 so that the warning messages will disappear silently by upgrading to 0.4 . Stay tuned!

      1. I just released v0.4 that should get rid of the NonExistentFieldException from the log file.

        Thanks for highlighting this issue to me, sorry it caused you grief with the prev version.

  5. Unknown User (j.godau@schuetze-berlin.de)

    We upgraded from Hudson 1.337 to 1.341. The ChuckNorris plugin was and still is Version 0.3

    Builds are all run locally (no slave machines).

    The error only occurs at Hudson startup (everything else seems to run normally).

    I will test the changes to the config.xml files and restart overnight and let you know tomorrow how that goes.

    Thanks

    Jack...

    1. Unknown User (j.godau@schuetze-berlin.de)

      Hi,

      I've just done the following:

      1. removed all of the ChuckNorris entries from all projects config.xml files
      2. double checked that nothing is left with: find . -name "config.xml" -print | xargs grep "chucknorris"
      3. stopped Hudson
      4. emptied the log files
      5. started hudson
      6. checked the logs: The error was still there :(

      I did a more thorough  search and discovered these entries in the old build.xml files contain:

          <hudson.plugins.chucknorris.RoundhouseAction>
            <style>BAD_ASS</style>
            <fact>Chuck Norris can access private methods.</fact>
          </hudson.plugins.chucknorris.RoundhouseAction>

      After cleaning these and deleting all chucknorris files from the hudson/plugins directory the errors are gone except for:

      INFO: Started all plugins
      failed to locate class: com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.plugins.chucknorris.RoundhouseAction : hudson.plugins.chucknorris.RoundhouseAction
      failed to locate class: com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.plugins.chucknorris.RoundhouseAction : hudson.plugins.chucknorris.RoundhouseAction
      failed to locate class: com.thoughtworks.xstream.mapper.CannotResolveClassException: hudson.plugins.chucknorris.RoundhouseAction : hudson.plugins.chucknorris.RoundhouseAction
      20.01.2010 11:47:57 hudson.model.Hudson$4 onAttained

      Please advise how I might be able to get rid of these last errors?

      I want to _completely_ remove all traces of the chucknorris plugin from our system.

      Thanks

      Jack...

      1. Unfortunately this one is an open issue http://issues.jenkins-ci.org/browse/JENKINS-3786 (for DiskUsage Plugin, but same prob re uninstalling a plugin)
        A similar issue was also raised against Warnings Plugin but was closed as not-reproducible.
        I suggest voting for issue JENKINS-3786 so that it appears on the top 10 list and hopefully one of the core devs can look at it.

        I know you're not going to like this, but can you try installing ChuckNorris Plugin again but you don't have to activate it on any job, do you still see the CannotResolveClassException?

        In the mean time, I'll keep trying to reproduce the exception.

        1. Unknown User (j.godau@schuetze-berlin.de)

          After I reinstalled it (without enabling it on any project) I got 6 of these stack traces on startup:

          [snip]

          If I deactivate it (via the Hudson, manage plugins page) I get 3 of these when I restart:

          [snip]

          EDIT: I found another three old builds were still in the system with chucknorris tags. I removed these and now no errors appear (whether hudson is present or not).

          Thanks for your help!

          Regards

          Jack...

          1. After searching the mailing list archive, it looks like the rule of thumb is to never remove a plugin.

            Unless, like what you just did, you cleaned up traces of the plugin from the config.xml and build.xml files.

  6. Unknown User (axel.heider@gi-de.com)

    Feature Request: allow changing the quotes. Either vie GUI or use a separate file

    1. Agree. I'd like that too.

  7. Unknown User (luigi.viggiano@ubs.com)

    From my blog :

    The only primitive Chuck Norris uses in Java is ABSOLUTE_FEAR. In fact, in his dialect of Java, it is the only legal symbol in the entire language. There are no variables, because Chuck never varies: the pain he causes is constant. There are no control statements, because Chuck is always in control. There are no classes, because Chuck is is a class by himself. And no package has yet been made that could contain Chuck. You can't use protected access modifier as nobody can protect you from Chuck Norris. Even the JVM must never run his code optimized; since his code is already optimal, and this would cause a black hole singularity where the processor used to be.

  8. Unknown User (deezer)

    No Norris in Hudson ver. 1.382, Norris 0.4

    1. I just tested it against Hudson 1.385 and it worked fine.

      Any error? Could you please try 1.385?

  9. didnt work on latest jenkins

    no check box in configure

  10. Does not work properly in Firefox, the background image is not visible, in Chome is everything ok.

    Jenkins 1.461

  11. The Subversion link is invalid, the source is located now at: https://github.com/jenkinsci/chucknorris-plugin

    Also, the bug of background-image and CSS properties is fixed in the latest pull request: https://github.com/jenkinsci/chucknorris-plugin/pull/1

  12. In Jenkins 1.484, "Activate Chuck Norris" is a Post-build Action (not an independent checkbox), and only appears if you add it as such.

  13. Is there some way we could have an external XML file for jokes?

  14. Is there any way that you could add it to the Dashboard View - or that it could be a new feature? It could maybe act on if any on the builds (in the dashboard!) had failed or if all is okay. Would be awesome!!

  15. I'm using Jenkins ver. 1.647 and I've installed the Chuck Norris plugin, but I can't see any option to activate the plugin in the jobs configuration or anywhere else.

    I've tried to restart the windows service, uninstall/reinstall the plugin and restart again the windows service, but no change.

    I'm using the latest release (1.0), is it compatible with version 1.647 of Jenkins ?