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

Jenkins + git: "сообщите мне, кто вы", почему нужно пометить?

Просто установил Jenkins в Ubuntu 12.04, и мне захотелось создать простую сборку, которая просто клонирует проект и строит его.

Он терпит неудачу, потому что он не может пометить. Он не может пометить, потому что он ошибочно говорит, что " сообщите мне, кто вы", по-видимому, потому, что я не установил git настройки UserName и UserEmail.

Но мне не нужно устанавливать их, Дженкинс собирается просто клонировать репозиторий, зачем ему нужны учетные данные, если он не будет нажимать изменения, зачем вообще делать тег?

Полный журнал ошибок:

Started by user anonymous
Checkout:workspace / /var/lib/jenkins/jobs/Foo.Bar.Baz/workspace - [email protected]
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 default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident  <[email protected](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
4b9b3361

Ответ 1

Идея маркировки при вытягивании/клонировании репо является общей для большинства планировщиков сборки:
Hudson-Jenkins, но также CruiseControl (метка сборки определяется labelincrementer) или RTC Jazz Build Engine (где они называются моментальными снимками).

Идея состоит в том, чтобы установить постоянную запись ввода в сборку.
Таким образом, код, который вы вытягиваете, даже если он не был помечен, автоматически помечен для вас планировщиком сборки, чтобы позже вернуться к этой конкретной сборке.

Если эта политика (всегда помечена перед сборкой) установлена, тогда Дженкинс должен будет знать, кто вы, чтобы сделать тэг git (это объект git с прикрепленным к нему автором: user.name и user.email).

Однако, как упоминалось в "Почему hudson/jenkins пытается сделать commit?":

Проверяет конфигурацию "Skip internal tag" под "Advanced..." в разделе "Source code management".

Это должно избежать этого дополнительного шага пометки, который вам кажется не нужен.

enter image description here

Ответ 2

Как установить user.email и user.name, В jenkins перейдите в "Управление Jenkins" > "Настроить систему", и прокрутите вниз до "Git плагин", и там вы найдете Git plugin screen shot

введите свой адрес электронной почты и имя, вы можете пойти.

Ответ 3

Я использовал решение выше iecanfly. Использование имени пользователя и пароля git не работает, я вошли

имя пользователя: jenkins

email: jenkins @localhost

Это устранило проблему.

Ответ 4

Вы также можете использовать SSH в Jenkins и перейти в каталог рабочей области, а затем вы можете нормально запускать команды git config user.name и user.email.

Ответ 5

Если вы запускаете Jenkins в контейнере Docker, вам нужно выполнить его в контейнере docker exec -it <CONTAINER_ID> sh, а затем запустить предложенные команды git с вашим адресом электронной почты и именем.