Telelogic Synergy Source Control Block¶
CruiseControl.NET SCM plugin for CM Synergy.
Detection of modifications is entirely task based rather than object based, which may present problems for pre-6.3 lifecycles. Successful integration may be published through shared manual task folders and/or baselining.
Available from version 1.0
Example using Defaults
1<sourcecontrol type="synergy"> 2 <connection> 3 <host>myserver</host> 4 <database>\\myserver\share\mydatabase</database> 5 </connection> 6 <project> 7 <release>Product/1.0</release> 8 <projectSpecification>Product-1</projectSpecification> 9 <taskFolder>1234</taskFolder> 10 </project> 11 <changeSynergy> 12 <url>http://myserver:8060</url> 13 </changeSynergy> 14</sourcecontrol>
1<sourcecontrol type="synergy"> 2 <connection> 3 <host>myserver</host> 4 <database>\\myserver\share\mydatabase</database> 5 <!-- store values in an environmental variable--> 6 <username>%CCM_USER%</username> 7 <password>%CCM_PWD%</password> 8 <role>build_mgr</role> 9 <homeDirectory>D:\cmsynergy\%CCM_USER%</homeDirectory> 10 <clientDatabaseDirectory>D:\cmsynergy\uidb</clientDatabaseDirectory> 11 <polling>true</polling> 12 <timeout>3600</timeout> 13 </connection> 14 <project> 15 <release>Product/1.0</release> 16 <projectSpecification>Product-1</projectSpecification> 17 <taskFolder>1234</taskFolder> 18 <baseline>false</baseline> 19 <purpose>Integration Testing</purpose> 20 <template>true</template> 21 </project> 22 <changeSynergy> 23 <role>User</role> 24 <url>http://myserver:8060</url> 25 <username>%CS_USER%</username> 26 <password>%CS_PWD%</password> 27 </changeSynergy> 28</sourcecontrol>
|type||The type of source control block.||String - must be synergy||Yes||n/a||1.0|
|connection||Connection info to create a session.||Synergy Client Session||Yes||n/a||1.0|
|dynamicValues||The dynamic values to use for the source control block.||Dynamic Values array||No||None||1.5|
|issueUrlBuilder||The issue URL builder to use.||IssueUrlBuilder||No||n/a||1.0|
|project||The info for the integration testing project.||Synergy Project||Yes||n/a||1.0|
|changeSynergy||The Web Url builder to use.||IssueUrlBuilder||No||None||1.0|
This integration has been thoroughly tested against CM Synergy 6.3 SP4 and ChangeSynergy 4.3 SP3 Windows/Informix with the DCM option enabled. While untested, CM Synergy installations on Unix/Informix or Unix/Oracle should function properly.
CM Synergy Concepts (http://confluence.public.thoughtworks.org//display/CC/CMSynergyConcepts) is arguably one of the best conceptual explanations of CM Synergy. Consider it a prerequisite for implementing continuous integration with CM Synergy. Robert Smith (http://confluence.public.thoughtworks.org//display/~rjmpsmith), from the CruiseControl for Java site, deserves a great deal of credit for explaining the product better than Telelogic ever has.
Methodology of integration with CCNET¶
Certain assumptions have been made about the integration of CruiseControl.NET and CM Synergy. First, it is assumed that all projects use a task based reconfigure template, rather than an object based.
* The reconfigure template for all projects is task based, not object status based. * Developers have there own projects with purpose "Insulated Development" * There's no real point to continuous integration for "Collaborative Development" purpose projects, since Synergy is not a label based system. * Build Managers test completed tasks in a project with purpose "Integration Testing" (or similar). * We could create a baseline in the integration project to push completed tasks to the developers; however, this is less than ideal. Baselines in Synergy are expensive and were intended for milestone events like completion of a feature, or a configuration used for a QA testing round. * The more efficient approach is to have a shared task folder that is included in each developer's reconfigure template/properties. * Successfully integrated tasks can be manually added to this folder. * This will push newly completed and integrated tasks to developers when they reconfigure (i.e., "update members").
By creating separate child nodes for the <connection>, <project>, and <changeSynergy> configuration elements, it is very easy to create reusable blocks of XML. For more information on XML DTD entities and reusable configuration blocks, see JIRA issue CCNET-239 and Nithy Palanivelu's Weblog (http://peeps.dallas.focus-technologies.com/roller/page/nithy/20040128#using_the_entity_includes_in).
The Polling Feature¶
The polling feature is useful if your Synergy installation routinely goes offline (i.e., "protected mode"). Long runing builds may inadventently conflict with the routine downtime schedules. For example, polling allows your build to queue CM Synergy commands until the nightly backup completes.
Environmental variable support enables you to keep your sensitive build manager credentials out of the CCNET configuration file. This is especially important if the configuration file is under source control, whereby it would be readable by all CM Synergy users.
Documentation generated on Monday, 26 May 2014 at 7:18:02 AM