CruiseControl.NETは、ラベルをインクリメントしません。
-
11-09-2019 - |
質問
私は、Windows Server 2003オペレーティングシステム上のccnetサーバを実行しています。私の製品は細かい起こるために構築します。しかし、ラベルは常に「1.0.1.0」のまま。私はウェブダッシュボードを通じて力のビルドを行う場合は、バージョンがインクリメントされますが、そうでない場合、バージョンはインクリメントされません。
私が行方不明です何かがあれば誰でも教えてもらえます。これは既知の問題ですか?回避策はありますか?
製品(project_config.xml)のためのクルーズコントロールの設定ファイルは、次のようになります:
<cb:config-template xmlns:cb="urn:ccnet.config.builder">
<project name="MyProduct">
<workingDirectory>$(MyProductRootDir)</workingDirectory>
<artifactDirectory>$(MyProductRootDir)\build</artifactDirectory>
<webURL>http://local/ccnet/server/local/project/MyProduct/ViewProjectReport.aspx</webURL>
<modificationDelaySeconds>900</modificationDelaySeconds>
<sourcecontrol type="clearCase">
<viewPath>$(MyProductRootDir)</viewPath>
<branch>main</branch>
<autoGetSource>true</autoGetSource>
<useLabel>false</useLabel>
</sourcecontrol>
<triggers>
<scheduleTrigger time="06:00" name="6AM_build">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
</weekDays>
</scheduleTrigger>
<scheduleTrigger time="09:00" name="9AM_build">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
</weekDays>
</scheduleTrigger>
<scheduleTrigger time="12:00" name="12PM_build">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
</weekDays>
</scheduleTrigger>
<scheduleTrigger time="15:00" name="3PM_build">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
</weekDays>
</scheduleTrigger>
<scheduleTrigger time="18:00" name="6PM_build">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
</weekDays>
</scheduleTrigger>
</triggers>
<labeller type="assemblyVersionLabeller">
<major>1</major>
<minor>0</minor>
<incrementOnFailure>true</incrementOnFailure>
</labeller>
<tasks>
<msbuild>
<executable>$(msbuildexe)</executable>
<workingDirectory>build</workingDirectory>
<projectFile>build.targets</projectFile>
<buildArgs>/p:Configuration=Debug /fileLoggerParameters:LogFile=build_log.txt</buildArgs>
<targets>Build</targets>
<timeout>1200</timeout>
<logger>FileLogger,Microsoft.Build.Engine</logger>
</msbuild>
</tasks>
<publishers>
<xmllogger logDir="E:\ccnet\logs\MyProduct" />
<statistics />
</publishers>
<externalLinks>
<externalLink name="build_output" url="http://local/builds/MyProduct" />
</externalLinks>
</project>
</cb:config-template>
と私のccnet.configファイルは次のようになります。
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:define msbuildexe="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe"/>
<cb:define cyraftframeworkrootdir="E:\myProduct"/>
<cb:include href="project_config.xml" xmlns:cb="urn:ccnet.config.builder"/>
</cruisecontrol>
解決
これは、ビルド状態が「ForceBuild」された場合にのみ、インクリメントアセンブリバージョンのラベラーのバグでした。ビルドがあるため、トリガーのビルド状態が「IfModificationExists」であろうその場合、ソースコードの変更のトリガされたのであれば、バージョン番号がインクリメントされない。
これは修正されました。バグの詳細はこちらです。
所属していません StackOverflow