Подтвердить что ты не робот

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

После установки и игры с 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.

4b9b3361

Ответ 1

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

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

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

Перейдите на ваш сайт и введите общедоступный ключ ssh

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

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

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

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

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

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

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

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

Заключение: Это сводка всех маленьких блога, разбросанных по всему миру. Я надеюсь, что этот пост поможет вам начать хадсон и меркурий.

Ответ 2

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

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

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

В любом случае вы можете указать имя пользователя и пароль в URL-адресе, например: http://user:[email protected].

Ответ 3

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

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

  • с 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" [not/home/jenkins] - где я выполнил инструкции, приведенные выше ссылка).

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

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

Ответ 4

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

Ответ 5

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

введите описание изображения здесь

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

введите описание изображения здесь