<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description>Copies the build result to ~/hudsonbuild/downloads/indigo for later (manual) promotion to /downloads/releases/indigo</description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <useProjectSecurity>true</useProjectSecurity>
      <permission>hudson.model.Item.Delete:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Workspace:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Run.Update:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Configure:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Build:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Run.Delete:ROLE_CALLISTO-DEV</permission>
    </hudson.security.AuthorizationMatrixProperty>
    <hudson.plugins.descriptionsetter.JobByDescription/>
  </properties>
  <scm class="hudson.scm.NullSCM"/>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <jdk>(Default)</jdk>
  <triggers class="vector"/>
  <builders>
    <hudson.tasks.Ant>
      <targets></targets>
      <antName>(Default)</antName>
      <buildFile>promote.xml</buildFile>
      <properties>targetDirectory=/opt/users/hudsonbuild/downloads/indigo</properties>
    </hudson.tasks.Ant>
  </builders>
  <publishers>
    <hudson.tasks.Mailer>
      <recipients>richard.gronback@borland.com</recipients>
      <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>
      <sendToIndividuals>false</sendToIndividuals>
    </hudson.tasks.Mailer>
  </publishers>
  <buildWrappers/>
  <customWorkspace>/shared/indigo/build/indigo</customWorkspace>
</project>