0

コードベースを SVN リポジトリから Git リポジトリに変換中です。この移行中、既存のビルド/デプロイ プロセスの大部分を維持しようとしています。つまり、既存の CruiseControl.NET CI サーバーでビルドすることを意味します。

私が直面している問題は、git ルートの下にいくつかの異なるアプリ ディレクトリがあることです。これにより、特定のサブフォルダーの変更を検出できず、次のような関連するアプリケーションのみをビルドできなくなります。

../gitRepoRoot/appOne
../gitRepoRoot/appTwo

伝統的に、私は svn 作業ディレクトリを [../gitRepoRoot/appOne] のようなものに設定し、appOne をビルドするための変更を検出しましたが、これまでのところ、git を使用してサブディレクトリを監視する方法はないと言えます。

私は決してCruiseControl.NETの専門家ではないので、おそらく何かが足りないのでしょうか、それとも同じ目的を達成する別の方法がありますか?

4

1 に答える 1

0

ソース管理ブロックの方法に応じて、包含/除外フィルターを使用してビルドのトリガーを制御できます。

参照: http://www.cruisecontrolnet.org/projects/ccnet/wiki/Filtered

例えば:

<sourcecontrol type="filtered">
  <dynamicValues />
  <exclusionFilters />
  <inclusionFilters>
    <pathFilter>
      <pattern>appOne</pattern>
    </pathFilter>
    <pathFilter>
      <pattern>appTwo</pattern>
    </pathFilter>
  </inclusionFilters>
  <sourceControlProvider type="git">
    <autoGetSource>True</autoGetSource>
    <branch>master</branch>
    <commitUntrackedFiles>False</commitUntrackedFiles>
    <dynamicValues />
    <executable>C:\Program Files (x86)\Git\bin\git</executable>
    <fetchSubmodules>False</fetchSubmodules>
    <repository>**repo**</repository>
    <tagCommitMessage>CCNet Build {0}</tagCommitMessage>
  </sourceControlProvider>
</sourcecontrol>

注: デフォルトでpathFilterは、要素は大文字と小文字が区別されますが、次のように無効にすることができます。

<pathFilter>
  <caseSensitive>False</caseSensitive>
  <pattern>appOne</pattern>
</pathFilter>

その他のオプションについては、 http://www.cruisecontrolnet.org/projects/ccnet/wiki/PathFilterを参照してください。

于 2013-02-14T10:28:01.000 に答える