web-dev-qa-db-ja.com

Mercurialリポジトリのクローンを作成するためにAuthorizationHudson / Jenkinsを設定する方法

Mercurialをインストールして遊んだ後、Hudsonにリポジトリのクローンを作成させて、プロジェクトをビルドできるようにしようとしています。

現時点では、次のタスクが機能します。

  • 外部ホストと同期でき、コードがそのホストに表示されます。

現在、ホスト上のコードにアクセスするように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を統合する方法を見つけました。

21
David

httpsの代わりにSSHを使用

PuTTY WebサイトからPuTTY.exe、puttygen.exe、pageant.exe、およびplink.exeをダウンロードします。 puttygenを起動し、OPENSSH FORMAT(hudsons format)(=> Svn + SSHの使用方法 )でキーを生成します

[秘密鍵を保存]ボタンをクリックして、.PPKファイルをどこかに保存します。 [公開鍵の保存]ボタンをクリックして保存します。

Webサイトにアクセスして、パブリックsshキーを入力します

Pageant.exeを実行します。ページェントアイコン(帽子をかぶったコンピューター)がステータストレイに表示されます。

ページェントアイコンを右クリックして、[キーの追加]を選択します。以前に保存した.PPKファイルを選択し、そのパスフレーズを入力します。

Ted Naleidからの次の(最後の部分がコピーされています)(ありがとう!)ブログの魔女はここにあります: ハドソンをあなたに接続しています...

MercurialプラグインをHudsonにインストールします

あとは、HudsonにMercurialプラグインをインストールするだけです。ブラウザで、 http:// INSERT_YOUR_IP_HERE:808 に移動します。ハドソンが現れるはずです。

「ManageHudson」をクリックして、「ManagePlugins」に移動します。 「Available」タブに移動し、「Hudson Mercurialプラグイン」をチェックして、「Install」ボタンを押します。ハドソンは再起動を求めるプロンプトを表示し、インストールされます。

その後、新しいジョブを作成するだけで、[ソース管理]セクションに新しい[Mercurial]オプションが表示されます。それを選択し、「リポジトリURL」フィールドにsshURLを入力します。次に、「ブランチ」フィールドに「デフォルト」を入力し、コードをビルド/テストするための残りのジョブを設定します(読者に任せた演習)。

そしてここでそれは最初の成功したビルドです! First succefull build

結論:これは、インターネットのあちこちに散らばっているすべての小さなブログ投稿の要約です。この投稿がハドソンとマーキュリアルの開始に役立つことを願っています。

18
David

問題はユーザー名とパスワードに関係していないと思います。スタックトレースは、パスに問題があることを示していますF:\Hudson\jobs\testproject\workspace

プログラムhgを実行できません(ディレクトリ "F:\ Hudson\jobs\testproject\workspace"内)

ディレクトリ名が無効です

とにかく、次のようにURLでユーザー名とパスワードを指定できます。http://user:[email protected]

6
javanna

Jenkins/Hudson MercurialプラグインをBitBucketで認証するには、特に次の理由から、HTTPSの代わりにSSHプロトコルを使用すると便利であることがわかりました。

  1. mercurial Jenkinsプラグインを使用してHTTPS資格情報をBitBucketに保存する方法はないようですが、SSHを使用すると、資格情報を安全かつ確実に保存できます。

  2. sSHを使用すると、Mercurialがネイティブに実行しない圧縮を使用するようにSSHを構成できます。

BitBucketへのSSHアクセスを設定するための適切な手順は、次の場所にあります: http://confluence.atlassian.com/display/BITBUCKET/Using+SSH+to+Access+your+Bitbucket+Repository

ノート:

  • * nixサーバーでJenkins/Hudsonを実行している場合は、Jenkinsプロセスを実行しているユーザーとしてログインし、そのユーザーのホームディレクトリからこれらの操作を実行して、構成がそのユーザーによって検出されるようにします(たとえば、私のDebianサーバー上) Jenkinsスタンドアロンをインストールすると、ユーザー「jenkins」が作成され、ホームディレクトリが「/ var/lib/jenkins」に設定されます[not/ home/jenkins]-上記のリンクで提供されている手順を実行した場所)。

  • Jenkinsに呼び出させる前に、コマンドラインからhgcloneコマンドが機能することを確認すると非常に役立ちます。

  • 重要:これを機能させるには、パスフレーズなしで**キーを生成する必要がありました。

3
JaysonRaymond

次の行を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 を参照してください。

2
Vincent

Jenkinsの「資格情報」セクションでscm資格情報を追加できます。

enter image description here

また、資格情報を使用するようにジョブ構成を変更します。

enter image description here

1
R. Oosterholt