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.