plugin - Jenkins+git: error "dime quién eres", ¿por qué necesita etiquetar?
jenkins github (4)
Acabo de instalar Jenkins en Ubuntu 12.04 y quería crear una compilación simple que solo clone un proyecto y lo construya.
No funciona porque no puede etiquetar. No puede etiquetar porque se equivoca al decir " dime quién eres " aparentemente porque no configuré git UserName y UserEmail.
Pero, no debería necesitar configurar eso, Jenkins solo va a clonar el repositorio, ¿por qué necesita las credenciales si no va a impulsar los cambios? ¿Por qué necesita una etiqueta?
El registro de error completo es:
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
En cuanto a cómo configurar user.email y user.name, en jenkins, vaya a "Administrar Jenkins"> "Configurar sistema" y desplácese hacia abajo a "Git plugin" y allí encontrará
ingrese su correo electrónico y su nombre, está listo para comenzar.
La idea de etiquetar al tirar / clonar un repos es común para la mayoría de Build Scheduler:
Hudson-Jenkins, pero también CruiseControl (la etiqueta de compilación determinada por el labelincrementer
), o RTC Jazz Build Engine (donde se llaman "instantáneas") .
La idea es establecer un registro persistente de la entrada a una construcción.
De esta forma, el código que está extrayendo, incluso si no fue etiquetado, es etiquetado automáticamente por el planificador de compilación, para poder volver a esa compilación específica más adelante.
Si esa política (siempre etiquetando antes de una compilación) está configurada, entonces Jenkins necesitará saber quién es usted para hacer una etiqueta de git (es un objeto de git con un autor adjunto: nombre de user.name
y user.email
user.name
user.email
) .
Sin embargo, como se menciona en " ¿Por qué Hudson / Jenkins intenta hacer commit? ":
Comprueba la configuración "
Skip internal tag
" en "Advanced...
" en la sección "Source code management
".
Eso debería evitar ese paso adicional de etiquetado que parece no necesitar.
También puede hacer SSH en Jenkins y navegar hasta el directorio del espacio de trabajo, y luego simplemente puede ejecutar los comandos git config user.name y user.email normalmente.
Utilicé la solución anterior por iecanfly. El uso de mi nombre de usuario y contraseña de git no funcionó, ingresé
nombre de usuario: jenkins
correo electrónico: jenkins @ localhost
Eso solucionó el problema.