Projects settings (ccpy.conf)

Example config file

<ccpy>
  <!-- *************************** CoolProduct version 2 *************************** -->
  <project name="CoolProduct v2">
    <failOnError>yes</failOnError>

    <tasks>
      <sourcecontrol type="git">
        <url>https://company.com/repos/coolproductv2/Trunk/Import</url>
        <workingDirectory>/CoolProductBuilds/Import</workingDirectory>
        <preCleanWorkingDirectory>true</preCleanWorkingDirectory>
      </sourcecontrol>
      <sourcecontrol type="svn">
        <url>https://company.com/repos/coolproductv2/Trunk/</url>
        <workingDirectory>/CoolProductBuilds/SysInfra</workingDirectory>
      </sourcecontrol>

      <make>
        <workingDirectory>/CoolProductBuilds/core</workingDirectory>
        <args>clean release</args>
        <timeout>140</timeout>
      </make>
      <make>
        <workingDirectory>/CoolProductBuilds/ui</workingDirectory>
          <args>clean release</args>
        <timeout>140</timeout>
      </make>
      <make>
          <workingDirectory>/CoolProductBuilds/tests</workingDirectory>
        <args>cleanthis</args>
        <timeout>20</timeout>
      </make>

      <exec>
        <executable>coretests</executable>
        <workingDirectory>/CoolProductBuilds/tests/coretests</workingDirectory>
        <timeout>30</timeout>
      </exec>
      <exec>
        <executable>taLoggingTests</executable>
        <args>--xmlout</args>
        <workingDirectory>/CoolProductBuilds/tests/uitests</workingDirectory>
        <timeout>30</timeout>
        <warningExitCode>2</warningExitCode>
      </exec>
      </tasks>

    <emailNotification>
      <from>buildserver@company.com</from>
      <to>developer@company.com, buildmaster@company.com</to>
    </emailNotification>
  </project>

  <!-- *************************** CoolProduct version 3 *************************** -->
  <project name="CoolProduct v3">

    <tasks>
      <sourcecontrol type="svn">
        <url>https://company.com/repos/coolproductv3/Trunk/Import</url>
        <workingDirectory>/CoolProductBuilds/Import</workingDirectory>
      </sourcecontrol>
      <sourcecontrol type="svn">
        <url>https://company.com/repos/coolproductv3/Trunk/</url>
        <workingDirectory>/CoolProductBuilds/SysInfra</workingDirectory>
      </sourcecontrol>

      <make>
        <workingDirectory>/CoolProductBuildsv3/core</workingDirectory>
      <args>clean release</args>
      </make>
    </tasks>

    <emailNotification>
      <from>buildserver@company.com</from>
      <to>buildmaster@company.com</to>
      <format>attachment</format>
      <server>smtp.mail.com</server>
      <port>2525</port>
      <username>tom</username>
      <password>secret</password>
    </emailNotification>
  </project>

</ccpy>

Elements description

Projects config file contains the ordered list of projectsts, each project contains the ordered list of tasks. The following task types are supported: "svn", "make" and "execute".

NodeParent elementDescriptionTypeDefaultRequiredNotes
projectccpyProject settings elementElement with project name attribute and subelementsN/Ano
nameattribute of projectProject namestringN/Ayes
sourcecontroltasksSource control settings elementElement with sourcecontrol type attribute and subelementsN/Ano
typeattribute of sourcecontrolSource control typestring. Supported source control types are "svn" and "git"N/Ayes
urlsourcecontrolURL of the remote repository (checkout URL for subversion, clone URL for git)stringN/Ayes
workingDirectorysourcecontrolDirectory holding local checkoutstringcurrent directoryno
preCleanWorkingDirectorysourcecontrolClean working directory before checking outboolean (on/yes/true or off/no/false)nono
maketasksmake settings element used to execute makefilesElement with subelementsN/Ano
workingDirectorymakeThe working directory for makestringcurrent directoryno
argsmakemake argumentsstringemptyno
timeoutmakeNumber of seconds to wait before assuming that the make has hung and should be killedNon-negative integer600 (10 minutes)no
exectasksElement used to launch executablesElement with subelementsN/Ano
executableexecExecutable to launch.stringnoyes
argsexecExecutable argumentsstringemptyno
workingDirectoryexecThe working directory for the executablestringcurrent directoryno
timeoutexecNumber of seconds to wait before assuming that the executable has hung and should be killedNon-negative integer600 (10 minutes)no
warningExitCodeexecby default executable exit code 0 render the build as successful and <>0 is considered as failed build. You can use this tag to specify extra exit code that still renders the build successful but set status to "WARNING" instead of "OK"integerN/Ano
emailNotificationprojectContains settings for sending email notifications with integration resultsElement with subelementsN/Ano
fromemailNotificationSender's email addressstringemptyno
toemailNotificationContains correspondents to receive email notifications with integration resultsComma-separated list of stringsemptyno
formatemailNotificationEmail format for build resultsString: 'attachment', 'html' or 'plain''attachment'no
attachmentemailNotificationPath to the file to attach to the email report. Can be more than one. Notice that it is not related to the format the build results are emailed with.no
serveremailNotificationSMTP server hoststring'localhost'no
portemailNotificationSMTP server portinteger25no
usernameemailNotificationSMTP server usernamestringNot suppliedno
passwordemailNotificationSMTP server passwordstringNot suppliedno