Uploading MC artifacts to the labs downloads area
kabirkhan May 22, 2009 5:32 AMI'm working on a script to automate uploading the Microcontainer releases to the labs downloads area. From the comments of the script:
<!-- Script to put the releases belonging to the microcontainer project in the downloads on labs. Properties for this script are set in local.properties.xml: 'maven.home' contains the root of your maven installation. 'labs.checkout.folder' should point to a checkout of the jbossmc area of labs, svn url: https://cms.labs.jboss.com/prod/forge/portal-content/default/members/jbossmc Which individual sub-projects to be released are controlled by the version set in the 'version.xxx' properties. If you don't want to release a particular sub-project, then comment out that version in local.properties. 'release.checkout.folder' should point to an empty directory, which is where the script will check out each individual sub-project releases from subversion. Some projects are 'simple', i.e. they contain only one module. For these projects the artifacts will be checked out from the subversion repository backing the maven repository. The binary and source artifacts are combined into one zip. Some sub-projects are 'complex', i.e. they contain more than one module. These projects will be checked out from the tag in subversion and built using their distribution build. This is a safeguard, since whoever case whoever is publishing the release to maven will probably forget to publish the whole release artifact. For all complex projects the resulting source zip is added to the resulting binary zip. Once the script has all the required artifacts required, it invokes a custom ant task to copy the zips to a sub-folder of ${labs.checkout.folder}/individual/downloads per sub-project. The ant task also looks for the sub-project's marker in ${labs.checkout.folder}/project.xml and updates the downloads section with information about the released files. These releases go in the "Indivdual Projects" category of project.xml. In addition the custom ant task is run for the dist with dependencies for jboss-kernel (formerly known as microcontainer) and jboss-deployers, so that they are copied across to the ${labs.checkout.folder}/framework/downloads, and the ${labs.checkout.folder}/project.xml updated. These releases go in the "Indivdual Projects" category of project.xml. NOTE: The lastModified time of the file is used as the release date in ${labs.checkout.folder}/project.xml, so that might need tweaking if this script is run after the actual maven artifacts were initially published. The ant task will not add any files to ${labs.checkout.folder}/project.xml if it can find a file with that name there already, for example if a release that has already been done has accidentally been included using 'version.xxx'. Once done, you should verify that what is in ${labs.checkout.folder} looks correct, and then manually invoke 'svn add' for any new files and then 'svn commit' to make the download become available. -->
local.properties:
#Point to your maven install root maven.home=/usr/share/maven/ #Enable if testing this. It avoids cleaning/checking out the complex projects every time disable.complex.checkout=true # Point this to the checkout folder of the jbossmc labs area labs.checkout.folder=/Users/kabir/sourcecontrol/labs/jbossmc # The folder where you want to check out and build the releases from release.checkout.folder=/Users/kabir/sourcecontrol/mcrelease # The folder where you want to check out the subversion repository backing the maven # repository for publishing the release zips of 'complex' projects. This is only done # if the release artifacts were not added to maven maven.checkout.folder=sourcecontrol/thirdparty/maven2 # The versions of the sub-projects you want to release. They must be in the form # of the release number, e.g. 2.0.1.GA (luckily this matches the convention for # how the releases are tagged for when we need to build the projects). # If you do not want to release a particular sub-project, comment out the property # for its version version.reflect=2.0.2.GA version.mdr=2.0.1.GA #version.mdrc= version.man=2.1.0.SP1 version.kernel=2.0.6.GA version.cl=2.0.6.GA version.deployers=2.0.7.GA #version.reliance=XXXXNotThereYet version.vfs=2.1.2.GA version.mcint=2.2.0.Alpha1
It currently only publishes the source and binary artifacts since the javadocs don't seem to be published yet? Once we have the improved javadocs that we talked about in Neuchatel those can be added easily.