0

我有如下 GIT 回购,

 \main
       \Module A
       \Module B
       \Shared

当我对模块 B 进行更改时,CCNET 将从模块 A 开始构建,然后是模块 B,我不希望 CCNET 这样做。这将花费很多时间。我只希望 ccnet 仅在模块 B 上构建更改。

有人请帮助我:我在 CCNET Config 中的 1 个项目:

enter code here
   <project name="Dashboard 5.0" queue="Dashboard_01" queuePriority="01" category="01">
<artifactDirectory>&pathToArtifactsDirectory;Dashboard 5.0\</artifactDirectory>
&workingDirectory;
<webURL>http://&buildServerAddress;/ccnet/server/&buildServerName;/project/Dashboard 5.0/ViewLatestBuildReport.aspx</webURL>
&modificationDelaySeconds;
<triggers>
  <intervalTrigger seconds='30' buildCondition='IfModificationExists'/>
  <scheduleTrigger time='03:00' buildCondition='ForceBuild' name='Scheduled'/>
  <scheduleTrigger time='11:00' buildCondition='ForceBuild' name='Scheduled'/>
</triggers>
<state type="state" directory="&pathToStatesDirectory;Dashboard 5.0\" />

    <sourcecontrol type="git">
      <repository>&gitAddress;</repository>
      <branch>master</branch>
      <autoGetSource>true</autoGetSource>
      <fetchSubmodules>false</fetchSubmodules>
      <executable>C:\Program Files (x86)\Git\cmd\git.exe</executable>

      <commitBuildModifications>false</commitBuildModifications>
      <commitUntrackedFiles>false</commitUntrackedFiles>
      <timeout>3000000</timeout>
    </sourcecontrol>


<tasks>
  <nant>
    <executable>&pathToNantFile;</executable>
    <baseDirectory>&pathToBuildScriptsDirectory;Dashboard 5.0\</baseDirectory>
    <buildArgs>-D:projects_to_build=dashboard_framework</buildArgs>
    <buildFile>cruise.build</buildFile>
    <targetList>
      <target>automate</target>
    </targetList>
    <buildTimeoutSeconds>3000</buildTimeoutSeconds>
  </nant>

</tasks>
<publishers>
  <merge>
    <files>
      <file>&pathDB5MainCheckoutDirectory;framework\build\test-reports\*Test.dll-results.xml</file>
      <file>&pathDB5MainCheckoutDirectory;framework\build\test-reports\Test*.dll-results.xml</file>
      <file>&pathDB5MainCheckoutDirectory;framework\build\test-reports\simian.xml</file>
    </files>
  </merge>
  <xmllogger />
</publishers>

4

1 回答 1

1

模块 A 或模块 B 的任何签入都将导致项目节点以任一方式启动。您正在寻找的内容类似于子文件夹上的 subversion update 命令所做的事情,而 Git 不打算这样做。另一种方法是,您可以为每个模块创建一个单独的存储库。构建脚本或 Nant 任务也必须分开。

在 Git 中,如果您有几个始终独立签出的目录,那么它们实际上是两个不同的项目,应该存在于两个不同的存储库中。您可以稍后使用Git 子模块将它们重新合并在一起

于 2013-04-11T22:07:07.513 回答