Как настроить авторизацию Hudson / Jenkins для клонирования вашего ртутного репозитория - PullRequest
21 голосов
/ 02 апреля 2011

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

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

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

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

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

Started by user anonymous
$ hg clone --rev default https://bitbucket.org/*/testproject "F:\Hudson\jobs\testproject\workspace"
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:\Hudson\jobs\testproject\workspace"): 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 ]

18 голосов
/ 03 апреля 2011

Использовал SSH вместо https

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

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

Перейдите на свой веб-сайт и введите открытый ssh-ключ

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

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

Следующее (конечная часть скопирована) из блога ведьмы Теда Нейлида (спасибо!) Можно найти здесь: Подключение Hudson кваш ...

Установите плагин Mercurial в Гудзоне

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

Нажмите «Manage Hudson» и перейдите к «Manage Plugins».Перейдите на вкладку «Доступно», проверьте «Плагин Hudson Mercurial» и нажмите кнопку «Установить».Hudson предложит вам перезагрузить компьютер, а затем он установится.

После этого просто создайте новое задание, и у вас появится новая опция «mercurial» в разделе «Управление исходным кодом».Выберите это и поместите URL-адрес ssh в поле «URL-адрес хранилища».Затем поместите «default» в поле «branch» и настройте оставшуюся часть работы для построения / тестирования вашего кода (упражнение, оставленное читателю).

и вот оно первое успешноепостроить!First succefull build

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

6 голосов
/ 03 апреля 2011

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

Невозможно запустить программу hg (в каталоге "F: \ Hudson \ работа \ TestProject \ рабочее пространство")

Неверное имя каталога

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

3 голосов
/ 11 ноября 2011

Для аутентификации плагина 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, пользователь 'jenkins' создан, а домашний каталог установлен в '/ var / lib / jenkins' [ not / home / jenkins] - где я выполнил инструкции, приведенные по ссылке выше.

  • Мне было очень полезно убедиться, что команда hg clone работала из командной строки, прежде чем пытатьсячтобы Дженкинс назвал его.

  • ВАЖНО: Чтобы заставить это работать, мне нужно было сгенерировать ключ ** без ** парольной фразы.

2 голосов
/ 21 января 2012

Вы можете добавить следующие строки в файл 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

1 голос
/ 23 ноября 2015

Вы можете добавить свои учетные данные scm в разделе «Учетные данные» Jenkins:

enter image description here

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

enter image description here

...