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
Ответы
Ответ 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 с вашим адресом электронной почты и именем.