Ответ 1
Здесь мои заметки о том, как заставить CruiseControl.net работать с репозиторием github (в Windows). Я запускаю msysgit 1.7.3.1 в Windows 7. Я установил ccnet для запуска в качестве службы.
Следующей стратегией является создание учетной записи пользователя, которую будет использовать служба ccnet. Начните с того, что сборка будет работать в качестве пользователя, использующего консоль круиз-контроля. После этого я настраиваю учетную запись службы для запуска с использованием этой учетной записи пользователя.
Сначала настройте свои SSH-ключи для этого пользователя так же, как и для другого пользователя. Однако не используйте кодовую фразу. Это вызовет тайм-аут ccnet, ожидающий ввода пользователем. (github ssh key management имеет помощь, http://help.github.com/msysgit-key-setup/)
Вам также нужно клонировать воспроизведение где-нибудь во время входа в систему этого пользователя. Список надежных хостов хранится, это гарантирует, что хост находится в этом списке (я думаю, с вашими ключами .ssh). Если его нет в списке, cruisecontrol истечет время ожидания, так как git ждет вас, если вы доверяете хосту.
Предоставьте разрешения на чтение/запись пользователям в папку, в которой установлен круиз-контроль. Также дайте пользовательским разрешениям редактировать любые папки сборки, которые вы используете, любые ресурсы, которые может потребоваться для сборки.
Конфигурационный файл управления круиз-контролем должен будет использовать блок источника git.
Здесь документы на этом блоке.
Здесь образец:
<project name="NJasmine">
<sourcecontrol type="git">
<repository>git://github.com/fschwiet/DreamNJasmine.git</repository>
<branch>master</branch>
<autoGetSource>true</autoGetSource>
<executable>$(gitpath)</executable>
<tagOnSuccess>false</tagOnSuccess>
<commitBuildModifications>false</commitBuildModifications>
<commitUntrackedFiles>false</commitUntrackedFiles>
<workingDirectory>c:\build\NJasmine.git</workingDirectory>
<timeout>60000</timeout>
</sourcecontrol>
...
</project>
Вы заметите, что я использую переменную для gitPath, поэтому я определяю ее только один раз. Мой основной файл конфигурации ccnet на самом деле ссылается на выше, он выглядит примерно так: Обратившись к внешнему файлу конфигурации, я могу сохранить большую часть моей конфигурации ccnet в исходном элементе управления:
<!DOCTYPE cruisecontrol [
<!ENTITY njasmine SYSTEM "file:c:\src\njasmine\ccnet.config.xml">
]>
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:define gitpath="C:\Program Files (x86)\Git\cmd\git.cmd"/>
&njasmine;
</cruisecontrol>
Заметьте, что я установил путь git к "C:\Program Files (x86)\Git\cmd\git.cmd", а не "C:\Program Files (x86)\Git\бен\git.exe". Я никогда не смог получить bin\git.exe для работы. Я также обнаружил, что URL-адреса только для чтения в общем репозитории легче обрабатывать URL-адреса для чтения и записи, поэтому используйте только для чтения.