Builder import file (with buildstamp)

From ControlTier

Jump to: navigation, search


This section describes how to import a single file of the given buildstamp. The examples below assume a buildstamp convention representing a date/time stamp.

Contents

Directory layout

The command examples that follow correspond to a file directory layout described here:

top_dir
  |
  |--- afile.xml          // a file
  |
  +--- src/               // source directory
  |
  `--- target/            // contains build artifacts
        |
        `--- moduleA      // moduleA artifacts
	       |
	       `-- moduleA-20080630.war   // file to be imported	

The top_dir represents some abitrary base directory where various files and subdirectories exist. The "target" subdirectory contains "moduleA" which in turn contains a build artifact that is to be uploaded to the repository.

Command usage

To import the "moduleA-20080630.war" file run repoImport like so:

ctl -m Builder -c repoImport -- -targetdir top_dir/target \
    -filebase moduleA -buildstamp 20080630 -extension war  \
    -type war -installroot /path/to/install/dir 

After the repoImport command completes the file will have been uploaded to the repository and a new object defined with the specified metadata.

After the package has been registered you can query the repository and now see it listed:

	$ ctl -p default -m Builder -c repoFind -- -packagetype war
	|
	|--(war) moduleA-20080630.war

Builder configuration

To default the repoImport options to those shown above define a Builder like so:

File listing: moduleA-Builder.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project PUBLIC "-//ControlTier Software Inc.//DTD Project Document 1.0//EN" 
    "project.dtd">
<project>
  <!--
      **
      ** Defines Builder repoImport defaulting settings
      **
  -->

  <!-- 
    ** defaults option: -extension  
    -->
  <setting type="BuilderPackageExtension" name="moduleA" 
           description="File extension" 
           settingValue="war"/>
  <!-- 
    ** defaults option: -packagetype  
    -->
  <setting type="BuilderPackageType" name="moduleA" 
           description="Package control module" 
           settingValue="war"/>
  <!-- 
    ** defaults option: -installroot  
    -->
  <setting type="BuilderPackageInstallroot" name="moduleA" 
           description="Installation root directory" 
           settingValue="/path/to/installroot"/>
  <!-- 
    ** defaults option: -filebase  
    -->
  <setting type="BuilderPackageFilebase" name="moduleA" 
           description="The file base name" 
           settingValue="moduleA"/>

  <!--
      **
      ** Defines Builder resource and its settings
      **
  -->
  <deployment 
      type="Builder"
      name="moduleA" 
      description="A builder object." 
      installRoot="top_dir/target" 
      basedir="top_dir">

   <resources>
      <resource type="BuilderPackageExtension"   name="moduleA"/>
      <resource type="BuilderPackageType"        name="moduleA"/>
      <resource type="BuilderPackageInstallroot" name="moduleA"/>
      <resource type="BuilderPackageFilebase"    name="moduleA"/>
   </resources>
   <referrers>
      <resource type="Node" name="localhost"/>
   </referrers>

  </deployment>
</project>

To load this XML data use the load-objects command:

ctl -m ProjectBuilder -c load-objects -- -filename moduleA-Builder.xml

Command usage

After the moduleA Builder is defined, the command line options will have your defaults. Now just run repoImport with buildstamp:

ctl -t Builder -o moduleA -c repoImport -- -buildstamp 20080630
Development