Как настроить авторизацию Hudson /Jenkins для клонирования вашего репозитория mercurial

после установки и игры с mercurial я пытаюсь заставить Hudson клонировать репозиторий, чтобы он мог построить мой проект.

на данный момент работает следующая задача.

  • Я могу синхронизировать с моим внешним хостом, и код появляется на этом хосте.

теперь я пытаюсь настроить hudson / jenkins для доступа к коду на моем хосте.

но, к сожалению, я качусь по ошибке:

Started by user anonymous
$ hg clone --rev default https://bitbucket.org/*/testproject "F:Hudsonjobstestprojectworkspace"
abort: http authorization required
ERROR: Failed to clone https://bitbucket.org/*/testproject
[workspace] $ hg log --rev . --template {node}
java.io.IOException: Cannot run program "hg" (in directory "F:Hudsonjobstestprojectworkspace"): CreateProcess error=267, The directory name is invalid
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:698)
    at hudson.Launcher$ProcStarter.start(Launcher.java:329)
    at hudson.Launcher$ProcStarter.join(Launcher.java:336)
    at hudson.plugins.mercurial.MercurialSCM.joinWithPossibleTimeout(MercurialSCM.java:298)
    at hudson.plugins.mercurial.HgExe.popen(HgExe.java:191)
    at hudson.plugins.mercurial.HgExe.tip(HgExe.java:171)
    at hudson.plugins.mercurial.MercurialSCM.calcRevisionsFromBuild(MercurialSCM.java:254)
    at hudson.scm.SCM._calcRevisionsFromBuild(SCM.java:304)
    at hudson.model.AbstractProject.calcPollingBaseline(AbstractProject.java:1186)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1175)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:523)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:418)
    at hudson.model.Run.run(Run.java:1362)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)
Caused by: java.io.IOException: CreateProcess error=267, The directory name is invalid
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
    ... 18 more
Finished: FAILURE

какие действия мне нужно сделать, чтобы сказать Хадсону использовать имя пользователя x и пароль y для доступа к данным?

редактировать => найдено, как интегрировать ssh .

5 ответов


используется SSH вместо https

скачать putty.exe, puttygen.ехе, конкурс.exe и plink.exe с сайта PuTTY. Запустите puttygen и сгенерируйте ключ в ФОРМАТ OPENSSH (хадсонами формат) (=> как использовать Svn + SSH )

Нажмите кнопку Сохранить закрытый ключ и сохранить .PPK файл где-то. Нажмите кнопку Сохранить открытый ключ и сохраните его.

перейдите на свой веб-сайт и введите public ssh-key

запустить конкурс.исполняемый. Значок конкурса (компьютер в шляпе)появится в области состояния.

щелкните правой кнопкой мыши значок конкурса и выберите Добавить ключ. Выбирай .PPK-файл, сохраненный ранее, и введите его парольную фразу.

следующее (конечная часть скопирована) из Ted Naleid (спасибо!) блог ведьмы можно найти здесь:подключение Хадсона к вашему ...

установите плагин Mercurial в Hudson

все, что осталось сделать сейчас, это установить плагин Mercurial в Гудзоне. В браузер, перейти к http://INSERT_YOUR_IP_HERE:8080. Хадсон должен подняться.

нажмите "Управление Хадсоном" и перейдите к "Управление Плагинами". Пойти на Вкладка "доступно", проверьте " Hudson Mercurial plugin " и нажмите Кнопка" Установить". Гудзон подскажешь вы должны перезапустить, а затем установленный.

после этого просто создайте новую работу и у тебя будет новый вариант "ртутный" в "источник управления " раздел. Выберите это и поместите ssh URL в поле "URL репозитория". Затем поместите "default" в " branch" поле и настройка остальной части задания создание / тестирование кода (упражнение слева от читателя).

и вот это первая успешная сборка ! First succefull build

заключение: это резюме всех небольших блогпостов, разбросанных по всему интернету. Надеюсь, этот пост поможет вам начать Хадсон и Меркуриал.


Я думаю, что проблема не связана с логином и паролем. Ваш stacktrace говорит вам, что что-то не так с путем F:\Hudson\jobs\testproject\workspace.

не удается запустить программу hg (в каталоге "F:\Hudson\jobs\testproject\workspace")

недопустимое имя каталога

в любом случае, вы можете указать имя пользователя и пароль в URL, например: http://user:password@mydomain.org.


для аутентификации плагина Jenkins / Hudson Mercurial с BitBucket я тоже счел полезным использовать протокол SSH вместо HTTPS, особенно с тех пор:

  1. похоже, что нет способа сохранить ваши учетные данные HTTPS в BitBucket с помощью плагина Mercurial Jenkins, но с SSH вы можете безопасно и безопасно хранить свои учетные данные

  2. с SSH вы можете настроить его для использования сжатия, которое Mercurial не делает прирожденно.

хорошие инструкции по настройке SSH-доступа к BitBucket доступны здесь: http://confluence.atlassian.com/display/BITBUCKET/Using+SSH+to+Access+your+Bitbucket+Repository

Примечания:

  • Если вы используете Jenkins / Hudson на сервере *nix, вы захотите войти в систему как пользователь, выполняющий процесс Jenkins, и выполнить эти операции из этого домашнего каталога пользователей, поэтому конфигурации будет найден этим пользователем (например, на моем сервере Debian установка Jenkins standalone, пользователь "jenkins" создан, а домашний каталог установлен в "/var/lib / jenkins" [не / home / jenkins] - где я выполнил инструкции, приведенные по приведенной выше ссылке).

  • Я нашел очень полезным заверить, что команда HG clone работает из командной строки, прежде чем пытаться вызвать Дженкинса.

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


вы можете добавить следующие строки в Jenkins .файл hgrc (обычно /var/lib/jenkins/.hgrc)

[auth]
bitbucket.prefix = https://bitbucket.org/your_user/...
bitbucket.username = your_user
bitbucket.password = ******

см.http://www.selenic.com/mercurial/hgrc.5.html#auth


вы можете добавить свои учетные данные scm в разделе "Учетные данные" Дженкинса:

enter image description here

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

enter image description here