HudsonInNetBeans

(Difference between revisions)
(Competition)
(Competition)
Line 118: Line 118:
Other Hudson IDE plugins:
Other Hudson IDE plugins:
-
* [http://wiki.eclipse.org/Mylyn/Hudson_Integration_for_Mylyn Hudson Integration for Mylyn] (also [http://www.eclipse.org/mylyn/new/#hudson some features])
+
* Mylyn connector for Hudson/Jenkins: [http://tasktop.com/connectors/hudson-jenkins.php Tasktop summary], [http://wiki.eclipse.org/Mylyn/Hudson_Integration_for_Mylyn old(?) wiki] [http://www.eclipse.org/mylyn/new/#hudson old feature list]
* [http://code.google.com/p/hudson-eclipse/ Eclipse] (obsolete?)
* [http://code.google.com/p/hudson-eclipse/ Eclipse] (obsolete?)
* [http://kenai.com/projects/h2eclipse/pages/Home H2Eclipse] (status?)
* [http://kenai.com/projects/h2eclipse/pages/Home H2Eclipse] (status?)
* [http://code.google.com/p/hudson-idea/ IDEA #1]
* [http://code.google.com/p/hudson-idea/ IDEA #1]
* [http://code.google.com/p/hudsonbuildmonitor/ IDEA #2]
* [http://code.google.com/p/hudsonbuildmonitor/ IDEA #2]

Revision as of 14:10, 14 June 2012

Contents

Features

Also see: NewAndNoteworthyMilestone3NB67#HudsonIntegration

ContinuousIntegrationHOWTO is obsolete (relies on Kenai).

Automatic setup of CI

Should be easy to take an IDE project, or project tree, or kenai.com workspace, and set up a new CI job for it.

For a NB-generated Ant project, this means a freeform job invoking build.xml with the test target, collecting dist/*.jar and test result artifacts.

For a freeform or automatic Ant project, this may not be possible without user intervention.

For a Maven project (possibly consisting of multiple modules), this would be best handled by using Hudson's native Maven 2+ support. The IDE should also populate the CI field in pom.xml.

Monitoring and control

Basic monitoring and control from the IDE, along the lines of what the current module does but more polished: see running builds, get unobtrusive notifications when a build fails (especially if you are listed in the changelog!), maybe start or cancel builds, and of course jump to the main Hudson interface in a web browser for anything not better supported inside the IDE.

Changelog and source review

Ability to review build's changelog using IDE's diff viewer; maybe to switch workspace to VCS snapshot represented by build. Ability to browse job's workspace remotely using a tree view in the IDE (and open files R/O).

Hyperlinks for test failures, warnings, ...

Stack trace hyperlinking for e.g. unit test failures in a completed build.

Version skew is a potential problem.

Build log browsing

Display of build log in IDE's Output Window, with hyperlinks to remote workspace (or local workspace equivalents) for any files mentioned by name.

Version skew is a potential problem.

Static analysis result display

TBD. Open questions:

  • Should we use the task list for this?
  • How to deal with version skew?
  • How can the user keep the task list manageable if there are 7000 FindBugs warnings?
  • How should analysis warnings be rejected? Annotations?

Implementation

In hudson* modules.

Use the connecteddeveloper component in Bugzilla. Create issue; Open issues

Original HudsonInNetBeansUI spec is of historical interest.

How to develop

Build the IDE with at least

cluster.config=basic

Now create a project group containing at least these NB modules:

hudson
hudson.ant
hudson.git
hudson.maven
hudson.mercurial
hudson.subversion
hudson.tasklist

and optionally also:

hudson.php
java.helpset
nbbuild

and Debug Project on Hudson. This debug target is set up to enable verbose console logging in Hudson-related modules. (It is also suitable for setting as "main project" since its debug target rebuilds all the submodules too.)

Originally "Try Hudson on Localhost" was the easiest way to get started, though this is currently disabled (#214210), so just download the latest WAR and java -jar it (will open at http://localhost:8080/ by default). Install the Mercurial plugin from the update center if you want to test this integration (though the version available on the Hudson UC is quite old; the Jenkins UC has the latest).

Working with non-IDE sources

Useful to have checkouts of:

git://git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git (3.x)
git://github.com/hudson/hudson.git (2.x)
git://github.com/hudson-plugins/git-plugin.git
git://github.com/jenkinsci/mercurial-plugin.git
git://github.com/jenkinsci/multiple-scms-plugin.git
git://github.com/jenkinsci/analysis-core-plugin.git
git://github.com/jenkinsci/findbugs-plugin.git (etc.)
git://github.com/stapler/stapler.git
git://github.com/jenkinsci/jenkins.git
https://bitbucket.org/jlahoda/jackpot30 (subdir hudson.indexerinstaller; experimental)

To build and run Hudson from sources, just open the top aggregator project and Build Project (probably want to suppress tests for non-test-related executions in Maven settings). Then open the hudson-war module and Run Project, which should automatically call hudson-dev:run. Theoretically you can make incremental changes to Java and Jetty will automatically restart, though this seems to break things. Can edit Jelly XML (HTML templates) and the results should be live upon save.

To build and run plugins from sources, just open them and Run Project. This will run the plugin using Jetty against its configured baseline Hudson (or Jenkins) version. Or, just Build Project to create a *.hpi, and then install this manually into a running Hudson instance (see Manage Plugins / Advanced).

Competition

Other Hudson IDE plugins:

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo