Guvnor Build and Release

Version 4

    Build

     

    We should follow eclipse and when in the perspective have a "workspace" and "project" menu and toolbar. Actually eclispe only has a "project" one, but to simplify things for our current goals we can have a "workspace" too.

    Workspace

    • clean
      • calls "maven clean" for each project in the workspace
    • build
      • Builds each project for the worspace, producing all errors to be placed in the problems view
      • Disabled if build incrementally is selected
    • Build incrementally ( done later)
      • on "save" will re-build the current asset, and update it's entries only in the problems view
      • We'll keep this global for the workspace for now.
    • test
      • Run's unit tests
      • Probably do need a way to run tests for projects, files an folders.
        • Similr to how you can right a project, package or class in Eclipse and "Run as Junit"

     

    Project (Done later, as at the moment we have no easy way to scope to current project)

    • clean
      • calls "maven clean" for current project with focus
    • build
      • calls "maven compile" for current project with focus, producing all errors to be placed in the problems view
      • Disabled if workspace build incrementally is selected

     

    Errors

    • When "build" is executed all Errors are placed in this problems view.
    • A workspace has a "problems" view.
      • Each error has a reference back the path of the asset and also the line/column number.
      • Problems view has two "pages" - UF now has a multi-page panel.
        • First page is all workspace problems
        • Second page is current Editor problems (a filter of the global errors by path).
      • The problems view should support incremental updates
        • should be able to "delete" entries for a specific path

     

     

    Tests

    As this is just a java project, ther should be a src/tests folder. All tests are placed in there and should launchable form Junit and thus maven. This will allow our UI "scenario" tests, as well as generic java hand coded tests. Simplest thing for now is to just embed the JUnit errors erport, like hudson does. When you click "build" there should be a tick button that says "build with tests".

     

    KProject

    • Each project should have it's own project editor.
    • This is a currently a two page panel.
      • The first page is a minimal pom.xml editor
        • it should only expose the GAV - group, artificat and version.
        • Note they can still double click the pom.xml and get a text editor to edit the whole thing manually.  This is so a BA can update the version before doing a release.
      • Second page is the kproject.xm editor
    • The main panel should have a "release" button.
      • calls "maven install" which executes the build, runs all tests and produces a jar.
      • JAR installed into M2_REPO, by maven.
        • Should be enough to just set system property of M2_REPO location
        • M2_REPO should be exposed via http as a servlet, optionally secured, so the client can detect and download jars.
      • Should produce a report page that embeds all the test rules, all the maven text output, and general sucecss/fail to install.
      • Optionally it should do "maven deploy" if we wish to deploy to a remote repository.

     

    Maven Perspective

    • Browser for local M2_REPO
      • View "released" jars
      • Delete "released" jars
    • JAR uploader
      • Upload maven jars.
        • Should inspect the internal properties file, to get get and create correct folder paths.
      • If JAR is not a maven JAR (optional feature, not for now)
    • Audit
      • Each release/uplaod to the M2_REPO should be recorded
      • Each delete should be recorded
      • View of who did what when
        • possible optional comments per action