4

CCNet初心者です...

CCNet Web ダッシュボードをカスタマイズして、[Force Build] ボタンの横にチェックボックスを追加して、特定のビルドがリリース用かどうかを示したいと考えています。

この種のカスタマイズが可能かどうか教えてください。その場合は、開始するためのチュートリアルまたは記事のリンクを提供してください

4

1 に答える 1

6

チェックボックスがオンになっている場合、いくつかのCC.netプロジェクト(たとえば、デバッグプロジェクト)を非表示にしてビルドする必要があるため、意図したことを行うのは非常に面倒だと思います。履歴とログを含むプロジェクトのページにアクセスするのは面倒です。その場で ccnet プロジェクト構成を編集することを考えた場合は、最新の状態にするためにサービスを再起動する必要があることを忘れないでください。最後に、変更はダッシュボードには問題ありませんが、cctray で問題が発生します。

代わりに、デバッグ モードでビルドするプロジェクトとリリース モードでビルドするプロジェクトの 2 つの異なるプロジェクトを作成します。これははるかに簡単で簡単です。たとえば、ビルドがソース管理リポジトリの更新からトリガーされるデバッグ プロジェクトと、手動または夜間にビルドされるリリース プロジェクトを持つことができます。

EDIT
2 つの異なるプロジェクトの場合、2 つの動的パラメーター (Conf と OutPath としましょう) を持つ共通コード (Release と Debug 用) を含むブロックを作成します。また、db スクリプトの実行を処理する 3 番目のプロジェクトを作成します。この 3 番目のプロジェクトは、リリース 1 のビルドが成功するたびにトリガーされます。このように進めると、デバッグ/リリース ビルドを個別に実行し、スクリプトを個別に (強制ビルドで) およびすべてのリリース ビルドで実行し、最後に (コミットごとに) スクリプトを検証することができます。次のようになります。

<cb:define name="MyProject-Block">
    <project name="MyProject - $(Conf)" queue="General" queuePriority="100">
        <workingDirectory>D:\MyProject</workingDirectory>
        <triggers>
            <intervalTrigger seconds="300"/>
        </triggers>
        <cb:state-block/>
        <cb:svn-block svnpath="MyProject"/>
        <tasks>
            <msbuild>
                <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
                <workingDirectory>D:\MyProject</workingDirectory>
                <projectFile>MyProject.sln</projectFile>
                <buildArgs>/p:Configuration=$(Conf);OutputPath="$(OutPath)"</buildArgs>
                <targets>Clean;Build</targets>
                <timeout>600</timeout>
                <logger>F:\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
            </msbuild>
        </tasks>
        <publishers>
            <xmllogger/>
            <statistics />
            <modificationHistory onlyLogWhenChangesFound="true" />
            <cb:email-block/>
        </publishers>
    </project>
</cb:define>

<cb:MyProject-Block Conf="Debug" OuputPath="..\Compil\Debug" />
<cb:MyProject-Block Conf="Release" OuputPath="..\Compil\Release" />

<project name="MyProject. DbScript" queue="General" queuePriority="110">
    <workingDirectory>D:\MyProject\DB</workingDirectory>
    <triggers>
        <projectTrigger project=" MyProject - Release">
            <triggerStatus>Success</triggerStatus>
            <innerTrigger name="Eurosport.Business" type="intervalTrigger" seconds="60" buildCondition="ForceBuild" />
        </projectTrigger>
        <intervalTrigger seconds="300"/>
    </triggers>
    <cb:state-block/>
    <cb:svn-block svnpath="MyProject/DB"/>
    <tasks>
        <!-- Executing the script here -->
    </tasks>
    <publishers>
        <xmllogger/>
        <statistics />
        <modificationHistory onlyLogWhenChangesFound="true" />
        <cb:email-block/>
    </publishers>
</project>
于 2010-09-25T13:38:56.433 に答える