Re: WOLips project and build server

From: Mike Schrag (mschra..dimension.com)
Date: Thu Dec 04 2008 - 12:23:42 EST

  • Next message: Mike Schrag: "Re: FetchSpecification WOLips/Ganymede"

    > Is it possible to use build server (like Hudson or Continuum) with
    > WOLips project ?
    > Does somebody have examples, configuration to share?
    Quinton sent me his Hudson config, and I modified it some for our
    environment. I still don't have a generic impl for pulling deps,
    though I'll probably just write a little script, or possibly a hudson
    plugin, that parses the .classpath file and grabs them. For now I
    just shove all the frameworks in our system into the hudson workspace
    to make them available to link against. Seems to work fine, just a
    little clunky.

    So I set:

    Project name: myapp

    SCS:
    Your info

    Build Triggers:
    Build after (deps -- this should be a plugin, really)

    Build:
    Execute Shell: /Volumes/DevStorage/Users/mdt_build/Hudson/
    setupWorkspace.sh ${WORKSPACE} 53
    Invoke Ant: -propertyfile Root/wolips.properties -lib Root/lib clean
    build

    Post-build:
    Archive artifacts: dist/*.tar.gz
    Email notification

    That setupWorkspace.sh is:
    #!/bin/bash
    WORKSPACE=$1
    REPOS=`dirname $0`
    WO_VERSION=$2
    ROOT=$WORKSPACE/Root
    WONDER=Wonder-latest-Frameworks-${WO_VERSION}.tar.gz
    WOPROJECT=woproject.jar
    JOB_ROOT=${WORKSPACE}/../..

    if [ "$WORKSPACE" == "" ]; then
             echo "You must provide a workspace setting."
             exit 1
    fi

    if [ "$WO_VERSION" == "" ]; then
             echo "You must provide a WO version."
             exit 1
    fi

    # Make sure the Libraries folder exists
    mkdir -p ${WORKSPACE}/Libraries

    # Setup System and Library
    #rm -rf ${ROOT}
    mkdir -p ${ROOT}
    mkdir -p ${ROOT}/lib
    cp ${REPOS}/${WOPROJECT} ${ROOT}/lib
    rm -rf ${ROOT}/Library/Frameworks
    mkdir -p ${ROOT}/Library/Frameworks
    mkdir -p ${ROOT}/Library/WebObjects/Extensions
    mkdir -p ${ROOT}/Network/Library/Frameworks
    mkdir -p ${ROOT}/User/Library/Frameworks
    ln -sf ${REPOS}/WebObjects${WO_VERSION}/System ${ROOT}/System

    # Setup Wonder
    (cd ${ROOT}/Library/Frameworks; tar xfz ${REPOS}/${WONDER})

    # Setup Internal Frameworks
    # This is the really lame part btw -- this should parse from .classpath
    for FRAMEWORK in MDTWOExtensions MDTImage MDTCMS MDTAccounting Swarm
    MDTDirectory Scheduler; do
             (cd ${ROOT}/Library/Frameworks; tar xfz ${JOB_ROOT}/$
    {FRAMEWORK}/lastSuccessful/archive/dist/${FRAMEWORK}.tar.gz)
    done

    # Setup wolips.properties
    cat >> ${ROOT}/wolips.properties << END
    wo.system.root=${ROOT}/System
    wo.user.frameworks=${ROOT}/User/Library/Frameworks
    wo.system.frameworks=${ROOT}/System/Library/Frameworks
    wo.bootstrapjar=${ROOT}/System/Library/WebObjects/JavaApplications/
    wotaskd.woa/WOBootstrap.jar
    wo.network.frameworks=${ROOT}/Network/Library/Frameworks
    wo.api.root=/Developer/ADC%20Reference%20Library/documentation/
    WebObjects/Reference/API/
    wo.network.root=${ROOT}/Network
    wo.extensions=${ROOT}/Library/WebObjects/Extensions
    wo.user.root=${ROOT}/User
    wo.local.frameworks=${ROOT}/Library/Frameworks
    wo.apps.root=${ROOT}/Library/WebObjects/Applications
    wo.local.root=${ROOT}
    END



    This archive was generated by hypermail 2.0.0 : Thu Dec 04 2008 - 12:24:50 EST