Promoting JBoss Tools nightly project builds to milestone or stable release

Version 4

    This doc is in progress and subject to change. ~nickboldt

     

    Publishing SOA/BRMS Tooling components

     

    == STEP ONE :: Nightly Snapshot Build (Continuous Integration) ==

     

    Run your job as you would run a local build, that is, by invoking Maven 3 w/ Tycho 0.15 (or later) against your sources.

     

    Then publish the output of the build to the server using publish.sh - simply run a shell script at the end of the job which does this:

     

    Currently, the publish.sh script that everyone uses assumes a few things:

     

    a) git or svn sources are fetched into ${WORKSPACE}/sources/, not the root ${WORKSPACE} folder

    b) all builds will go into http://download.jboss.org/jbosstools/builds/staging/builds/staging/${JOB_NAME}

     

    Invocation of the script is done via Jenkins like this:

     

        cd ${WORKSPACE}/sources/

        wget http://anonsvn.jboss.org/repos/jbosstools/trunk/build/publish/publish.sh -q --no-check-certificate -N

        . publish.sh

     

    == STEP TWO :: Promoting a Snapshot to Milestone / Release ==

     

    You will need a second job with a "-publish" suffix which will copy your latest nightly to a new location.

     

    Invocation of the script is done via Jenkins like this:

     

        wget http://anonsvn.jboss.org/repos/jbosstools/trunk/build/publish/promote.sh -q --no-check-certificate -N

        . promote.sh -BUILD_TYPE build_type -TARGET_PLATFORM target_platform -PROJECT_NAME project_name -TARGET_FOLDER target_folder -SOURCE_PATH source_path

     

    Example jobs (which show how to set up the above job parameters, such as ${TARGET_PLATFORM} or ${BUILD_TYPE}):

     

        https://jenkins.mw.lab.eng.bos.redhat.com/hudson/job/jbosstools-promote/

        https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/SOA-Team/view/SOAStudio_6.0.juno/job/SwitchYard-Tools-publish/

        https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/SOA-Team/view/SOAStudio_6.0.juno/job/modeshape-tools-continuous-publish/

     

    == Naming conventions ==

     

    Development milestones (x.y.z.Beta2) go here:  updates/development/{eclipse-version}/{stream}/

    Stable releases (x.y.z.Final) will go in here: updates/{stable|release}/{eclipse-version}/{stream}/

     

    Examples:

     

    http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/switchyard/0.6.0/

    http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/modeshape/3.0.0.Beta1/

    http://download.jboss.org/jbosstools/updates/development/juno/soa-tooling/modeshape/3.0.0.Beta5/

    http://download.jboss.org/jbosstools/updates/stable/indigo/soa-tooling/switchyard/0.5.0.Final/

     

    == Integration Builds? ==

     

    In future, we may also have "integration" builds, which are nightlies deemed good enough for

    use by downstream developers, but not stable enough (ie., not tested enough) to be released to community as a milestone.

     

    The above process will also work for building then promoting an integration build - it just uses BUILD_TYPE = integration instead of development or stable.

     

    == Composite Sites? ==

     

    When you publish your build, eg., into

     

    http://download.jboss.org/jbosstools/updates/development/juno/soa-tooling/modeshape/3.0.0.Beta5/

     

    composite metadata will now be generated into

     

    http://download.jboss.org/jbosstools/updates/development/juno/soa-tooling/modeshape/

     

    See https://issues.jboss.org/browse/JBIDE-12662 for details.

     

    == Index Pages? ==

     

    Should the generated sites have a similar look and feel instead of a raw directory listing?

     

    Yes. See https://issues.jboss.org/browse/JBIDE-12660