views:

119

answers:

2

Hi,

I want to compile a project (with CruiseControl) not only if its source changes, but also if some dependencies change.

example: I got 3 folders:

c:\myProject\src (my source folder)
c:\dependency1\src (source code of dependency 1)
c:\dependency2\output (dll of dependency 2)

I want to compile my project in cruisecontrol if anything in one of these folders change.

How can I configure this in my ccnet.config?

bye and thanks juergen

+1  A: 

If you have the dependencies setup as subversion externals, then follow the instructions on this StackOverflow thread.

If they are each in their own subversion repository, you might try something like this post by Mark Cohen.

If the changes are only at the filesystem level, then you might try the <filesystem> modification set detector.

Kaleb Pederson
A: 

Should be something like this:

<project>
  <!-- ... -->
  <sourcecontrol type="multi">
    <requireChangesFromAll>False</requireChangesFromAll>
    <sourceControls>
      <svn>
        <trunkUrl>svn://svn.mycompany.com/myProject/trunk</trunkUrl>
        <workingDirectory>c:\myProject\src</workingDirectory>
        <!-- ... -->
      </svn>
      <svn>
        <trunkUrl>svn://svn.mycompany.com/dependency1/trunk</trunkUrl>
        <workingDirectory>c:\dependency1\src</workingDirectory>
        <!-- ... -->
      </svn>
      <filtered>
        <exclusionFilters />
        <inclusionFilters>
          <pathFilter>
            <caseSensitive>False</caseSensitive>
            <pattern>c:\dependency2\output\dependency2.dll</pattern>
          </pathFilter>
        </inclusionFilters>
        <sourceControlProvider type="filesystem">
          <autoGetSource>False</autoGetSource>
          <ignoreMissingRoot>True</ignoreMissingRoot>
          <repositoryRoot>c:\dependency2\output</repositoryRoot>
        </sourceControlProvider>
      </filtered>
    </sourceControls>
  </sourcecontrol>
  <!-- ... -->
</project>
The Chairman