Jenkins / Mercurial の最新バージョンがあります。マシンは Red Hat Linux 6.6 です。
Jenkins で Release プラグインを使用しています。プロジェクトでリリース プロセスを実行するための Maven プラグイン (maven-scm-plugin、maven-version-plugin、maven-enforcer-plugin)。これらのバージョンはすべて利用可能な最新バージョンを使用しており、構成は正しく設定されています。
Jenkins の仕事では、RhodeCode (Mercurial hg) の背後にあるプロジェクトからソース コードをチェックアウトしています。
出力は次のように表示されます。
06:00:02 Started by timer
06:00:02 [EnvInject] - Loading node environment variables.
06:00:03 Building on master in workspace /main/jenkins/instance2/workspace/MyCoolProject
06:00:06 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" showconfig paths.default
06:00:06 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" pull --rev default
06:00:12 pulling from http://mercurialserver.my.company.com:9001/csa/MyCoolProject/
06:00:12 no changes found
06:00:12 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" update --clean --rev default
06:00:13 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
06:00:13 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" --config extensions.purge= clean --all
06:00:13 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" log --rev . --template {node}
06:00:13 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" log --rev . --template {rev}
06:00:13 [MyCoolProject] $ hg --config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https" log --rev
上記のように、Mercurial DVCS ツールで読み取り/チェックアウト操作を実行するユーザーを指定したため、Jenkins は hg コマンドを開始する際に一連のパラメーターを渡しました。
--config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https"
Maven SCMプラグインを使用していて、それが目標である場合、同じものを送信する方法を見つけようとしています。
scm:checkin
scm:tag
などは、呼び出されると、下にあるバージョン管理コマンド (私の場合は、hg branch、hg outside、hg push コマンド) を開始します。
現在、上記の hg コマンドは、ユーザーがユーザー名とパスワード変数セットを含む~/.hgrcファイルを持っていないか、ユーザーがターゲットのRhodeCode /Mercurial リポジトリへの「書き込み」アクセス権を持っていないという事実により失敗しています。
20:16:26 [INFO] --- maven-scm-plugin:1.9.4:checkin (default-cli) @ MyCoolProject ---
20:16:27 [INFO] EXECUTING: /bin/sh -c cd /main/jenkins/instance2/workspace/MyCoolProject && hg branch
20:16:27 [INFO] EXECUTING: /bin/sh -c cd /main/jenkins/instance2/workspace/MyCoolProject && hg outgoing
20:16:29 [INFO] EXECUTING: /bin/sh -c cd /main/jenkins/instance2/workspace/MyCoolProject && hg status
20:16:29 [INFO] [pom.xml:modified]
20:16:29 [INFO] [jenkins-MyCoolProject-43.appVersion.txt:unknown]
20:16:29 [INFO] [pom.xml.versionsBackup:unknown]
20:16:29 [INFO] EXECUTING: /bin/sh -c cd /main/jenkins/instance2/workspace/MyCoolProject && hg commit --message '"CM Jenkins - Release plugin auto check-in and creation of release tag = 0.0.29'
20:16:30 [INFO] EXECUTING: /bin/sh -c cd /main/jenkins/instance2/workspace/MyCoolProject && hg push http://cmprod2merc.my.company.com:9001/csa/MyCoolProject
20:16:34 [ERROR]
20:16:34 EXECUTION FAILED
20:16:34 Execution of cmd : push failed with exit code: 255.
20:16:34 Working directory was:
20:16:34 /main/jenkins/instance2/workspace/MyCoolProject
20:16:34 Your Hg installation seems to be valid and complete.
20:16:34 Hg version: 1.9.2 (OK)
~/.hgrc ファイルを構成しようとしました (Mercurial docs に従って)。このファイルで指定したユーザー名がターゲット ソース コード リポジトリ/プロジェクトで有効な WRITE アクセス権を持っている場合、上記のエラー メッセージは表示されません。
これは、ビルド マシンにキーリングと mercurial_keyring 拡張機能/プラグインをインストール/構成することでも解決できます (これはオンラインの mercurial キーリング ドキュメントに従って簡単です)。
私が見つけようとしているのは、 --config xxxxx
パラメーターを渡すにはどうすればよいですか ( Jenkins ジョブのソース コード管理で入力した設定値が原因で、Jenkins がチェックアウト/プル操作の実行中に渡すように) Maven SCM プラグインがscm:checkin / scm:tagゴールを開始しているときに呼び出されるhgコマンドは、最終的にhgコマンド (hg outside、 hg push ) / ~/.hgrc を設定せずにすべての hg コマンドを呼び出し、mercurial_keyring をインストールしますか?