CruiseControl.NET - Проект не существует - PullRequest
3 голосов
/ 20 июля 2010

У меня установлена ​​программа CruiseControl.NET на сервере.У меня все работало отлично.Все, что означает, вытащить код из SVN, собрать его, после успешной сборки, запустить настройку проекта с триггером проекта для развертывания кода в среде DEV.Я добавил некоторые внутренние настройки безопасности, в основном просто группы пользователей.Я использую безопасность LDAP.Когда я добавил функции безопасности, мое автоматическое развертывание на сервере DEV перестало работать.Я могу заставить сборку проекта развернуть его, но при успешной сборке проекта # 1, когда срабатывает триггер проекта развертывания (я сменил имя проекта на ПРОЕКТ в целях безопасности):

2010-07-20 13: 28: 19,354 [PROJECT: DEBUG] Получение ProjectStatus с сервера: tcp: // localhost: 21234 / CruiseManager.rem
2010-07-20 13: 28: 19,355 [ПРОЕКТ: ОШИБКА] Исключение: проект «ПРОЕКТ» не существует на сервере CCNet.

ThoughtWorks.CruiseControl.Remote.NoSuchProjectException: проект 'PROJECT' не существует на сервере CCNet.
в ThoughtWorks.CruiseControl.Core.Triggers.ProjectTrigger.GetCurrentProjectStatus () * 1008.CruiseControl.Core.Triggers.ProjectTrigger.Fire ()
в ThoughtWorks.CruiseControl.Core.Triggers.MultipleTrigger.Fire ()
в ThoughtWorks.CruiseControl.Core.ProjectIntegrator.PollTriggruControl.Core.ProjectIntegrator.Integrate ()
в ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Run ()

У меня установлена ​​активная учетная запись каталога для CruiseControl, и служба работает под этим пользователемучетная запись (которая имеет права администратора).Я дал пользователю CruiseControl полный доступ ко всем проектам, добавив его в мою группу «admin» в разделе внутренних настроек конфигурации CruiseControl.

Любые идеи о том, как сделать проект доступным для CruiseControl.чтобы он мог выполнить автоматическое развертывание?

Ответы [ 2 ]

0 голосов
/ 21 июля 2010

Я думаю, что вам нужно определить параметры безопасности для ваших ролей - я не вижу там никакой внутренней разметки безопасности. Хорошо, что у вас есть учетные записи и учетные записи AD, но вы должны сообщить CCNet, что это значит. Попробуйте добавить ниже в теги вашего проекта (конечно, после изменения имени домена и группы):

<internalSecurity>        
    <permissions>
        <!-- Roles -->
        <rolePermission name="Admin" forceBuild="Allow" startProject="Allow" >
            <users>
                <userName name="DOMAIN\GROUP1\"/>
            </users>         
        </rolePermission>
        <rolePermission name="Developers" forceBuild="Deny" startProject="Deny">
            <users>
                <userName name="DOMAIN\GROUP2\"/>
            </users>
        </rolePermission>
    </permissions>
</internalSecurity>
0 голосов
/ 21 июля 2010

Вот код автоматического развертывания, который отслеживает веб-проект, после успешной сборки, он должен отключиться.И это работает без внутренней конфигурации безопасности:

<cb:scope ProjectName="$(projMhWebDevDeploy)">
<project name="$(projMhWebDevDeploy)" queue="Q1" queuePriority="1">
  <cb:define safeProjectName="MH_Web_Dev_Branch_Deployment"/>
  <cb:define projectDirectory="$(ccnetDirectory)\Projects\$(safeProjectName)"/>

  <triggers>
    <projectTrigger project="$(projMhWeb)">
      <triggerStatus>Success</triggerStatus>
      <innerTrigger type="intervalTrigger" seconds="5" buildCondition="IfModificationExists" />
    </projectTrigger>
    <projectTrigger project="$(projMhWeb)">
      <triggerStatus>Success</triggerStatus>
      <innerTrigger type="intervalTrigger" seconds="5" buildCondition="ForceBuild" />
    </projectTrigger>
  </triggers>

  <category>DEV Deployments</category>
  <webURL>$(urlCcnetDashBoard)</webURL>
  <workingDirectory>$(projectDirectory)</workingDirectory>
  <artifactDirectory>$(ccnetDirectory)\BuildFiles\$(safeProjectName)</artifactDirectory>

  <tasks>
    <!-- Deploy Code -->
    <exec>
      <executable>$(deployCodeBat)</executable>
      <buildArgs>
        $(ccnetDirectory)\Projects\MH_Web\Web
        $(deployMhWebDev)
        brh
      </buildArgs>
      <baseDirectory>$(ccnetDirectory)\BatchFiles\</baseDirectory>
    </exec>
    <!-- Deploy Helicon HTTPD -->
    <exec>
      <executable>$(deployHeliconBat)</executable>
      <buildArgs>
        $(ccnetDirectory)\Projects\MH_Web\Web
        "$(deployHeliconDev)"
        httpd.conf
      </buildArgs>
      <baseDirectory>$(ccnetDirectory)\BatchFiles\</baseDirectory>
    </exec>
  </tasks>
  <publishers>
    <xmllogger />
    <modificationHistory onlyLogWhenChangesFound="true" />
    <email mailport="25" includeDetails="true" useSSL="false" from="FROM" mailhost="SERVER">
      <users>
        EMAIL ADDRESSES ARE HERE
      </users>
      <groups>
        <group name="BuildMaster">
          <notifications>
            <notificationType>Always</notificationType>
          </notifications>
        </group>
      </groups>
    </email>
  </publishers>
  <security type="defaultProjectSecurity" defaultRight="Deny">
    <permissions>
      <rolePermission name="Developers" ref="Developers"/>
      <rolePermission name="Admin" ref="Admin"/>
    </permissions>
  </security>
</project>   
</cb:scope>
...