Как настроить авторизацию 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.
Ответы
Ответ 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:
![введите описание изображения здесь]()
Также измените конфигурацию задания для использования учетных данных:
![введите описание изображения здесь]()