web-dev-qa-db-ja.com

Jenkins + git:「あなたが誰であるか教えてください」エラー、なぜタグ付けする必要があるのですか?

Ubuntu 12.04にJenkinsをインストールしたばかりで、プロジェクトを複製してビルドするだけの簡単なビルドを作成したかったのです。

タグ付けできないため失敗します。 gitの設定UserNameとUserEmailを設定しなかったため、「あなたが誰であるかを教えてください」とエラーが出るため、タグ付けできません。

しかし、私はそれらを設定する必要はありません、ジェンキンスはリポジトリをクローンするだけです、なぜ変更をプッシュしないのに資格情報が必要なのですか、なぜタグをまったく必要とするのですか?

完全なエラーログ:

Started by user anonymous
Checkout:workspace / /var/lib/jenkins/jobs/Foo.Bar.Baz/workspace - hudson.remoting.LocalChannel@38e609c9
Using strategy: Default
Cloning the remote Git repository
Cloning repository Origin
Fetching upstream changes from [email protected]:foo-bar-baz/foo-bar-baz.git
Seen branch in repository Origin/1.0
Seen branch in repository Origin/1.5.4
Seen branch in repository Origin/HEAD
Seen branch in repository Origin/master
Commencing build of Revision 479d37776b46283a946dd395c1ea78f18c0b97c7 (Origin/1.0)
Checking out Revision 479d37776b46283a946dd395c1ea78f18c0b97c7 (Origin/1.0)
FATAL: Could not apply tag jenkins-Foo.Bar.Baz-2
hudson.plugins.git.GitException: Could not apply tag jenkins-Foo.Bar.Baz-2
at hudson.plugins.git.GitAPI.tag(GitAPI.Java:737)
at hudson.plugins.git.GitSCM$4.invoke(GitSCM.Java:1320)
at hudson.plugins.git.GitSCM$4.invoke(GitSCM.Java:1268)
at hudson.FilePath.act(FilePath.Java:758)
at hudson.FilePath.act(FilePath.Java:740)
at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:1268)
at hudson.model.AbstractProject.checkout(AbstractProject.Java:1193)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.Java:565)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:453)
at hudson.model.Run.run(Run.Java:1376)
at hudson.matrix.MatrixBuild.run(MatrixBuild.Java:220)
at hudson.model.ResourceController.execute(ResourceController.Java:88)
at hudson.model.Executor.run(Executor.Java:175)
at hudson.model.OneOffExecutor.run(OneOffExecutor.Java:66)
Caused by: hudson.plugins.git.GitException: Command "git tag -a -f -m Jenkins Build #2 jenkins-Foo.Bar.Baz-2" returned status code 128:
stdout: 
stderr: 
*** Please tell me who you are.

    Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident  <jenkins@somehostname.(none)> not allowed

    at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.Java:786)
    at hudson.plugins.git.GitAPI.launchCommand(GitAPI.Java:748)
    at hudson.plugins.git.GitAPI.launchCommand(GitAPI.Java:758)
    at hudson.plugins.git.GitAPI.tag(GitAPI.Java:735)
    ... 13 more
36
knocte

リポジトリをプル/クローンする際のタグ付けの考え方は、ほとんどのビルドスケジューラに共通しています:
Hudson-Jenkins、また CruiseControllabelincrementerによって決定されるビルドラベル)、または RTC Jazz Build Engine(「スナップショット」と呼ばれる場所) ")

アイデアは、inputの永続的なレコードをビルドに設定することです。
そのようにして、プルしているコードは、タグ付けされていなくても、ビルドスケジューラによって自動的にタグ付けされ、その特定のビルドに後で戻ることができます。

そのポリシー(常にビルドの前にタグ付けする)が設定されている場合、Jenkinsはgitタグを作成するためにあなたが誰であるかを知る必要があります(それはuser.nameuser.email)。

ただし、「 なぜhudson/jenkinsはコミットしようとするのですか? 」で述べたように:

セクション「Skip internal tag」の「Advanced...」の下の「Source code management」設定を確認します。

これにより、必要のない余分なタグ付け手順を回避できます。

enter image description here

37
VonC

User.emailとuser.nameを設定する方法については、jenkinsで、[Jenkinsの管理]> [システムの構成]に移動し、[Gitプラグイン]まで下にスクロールします。 Git plugin screen shot

メールアドレスと名前を入力してください。

21
iecanfly

Iecanflyで上記のソリューションを使用しました。 gitのユーザー名とパスワードを使用しても機能しませんでした。

ユーザー名:ジェンキンス

メール:jenkins @ localhost

これで問題が修正されました。

2
diptia

また、JenkinsにSSHで接続してワークスペースディレクトリに移動してから、git config user.nameおよびuser.emailコマンドを通常どおり実行することもできます。

1
Kvass

DockerコンテナーでJenkinsを実行している場合は、コンテナーdocker exec -it <CONTAINER_ID> shを実行してから、提案されたgitコマンドをメールと名前で実行する必要があります。

0
Ogala