Jenkins + git: “dites-moi qui vous êtes” erreur, pourquoi est-il besoin de balise?
Viens d'installer Jenkins dans Ubuntu 12.04 et j'ai voulu créer une simple construction qui vient de clones d'un projet et la construit.
Il échoue parce qu'il ne peut pas tag. Il ne peut pas la balise parce que c'erreurs en disant "me dire qui vous êtes", apparemment parce que je n'ai pas l'git paramètres de nom d'utilisateur et UserEmail.
Mais, je ne devrais pas avoir besoin de définir ces, Jenkins va juste cloner le dépôt, pourquoi est-il besoin des informations d'identification s'il ne va pas pousser les changements, pourquoi est-il nécessaire de faire une balise?
Plein journal d'erreur est:
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
- Hein! Après configuration de l'utilisateur.nom et l'utilisateur.e-mail, la compilation a réussi, mais il a créé un nouveau tag dans le serveur appelé "1.0", pourquoi est-git plugin tellement bizarre dans la configuration par défaut et comment le configurer de sorte qu'il ne fait pas cela?
Vous devez vous connecter pour publier un commentaire.
L'idée de marquage lors de l'extraction/clonage d'un repo est commun à la plupart Construire Planificateur de là-bas:
Hudson-Jenkins, mais aussi CruiseControl (La construction de l'étiquette déterminée par la
labelincrementer
), ou CCF de Jazz de Construire de Moteurs (où ils sont appelés des "instantanés").L'idée est de définir une persistance de la trace de la entrée à construire.
De cette façon, le code à tirer, même si ce n'était pas balisé, est marqué automatiquement pour vous par le planificateur de construire, afin d'être en mesure de revenir à construire plus tard.
Si cette politique (toujours balisage avant de construire) est défini, Jenkins aurez besoin de savoir qui vous êtes afin de faire un git tag (c'est un git objet avec un auteur attaché à elle:
user.name
etuser.email
).Cependant, comme mentionné dans " Pourquoi hudson/jenkins essaie de faire engager? ":
Qui devrait éviter que l'extra marquage étape vous semble pas nécessaire.
Quant à la façon de définir l'utilisateur.et de courriel de l'utilisateur.nom,
Dans jenkins, allez sur "Gérer Jenkins" > "Configurer le Système"
et faites défiler jusqu'à "plugin Git" et vous y trouverez
entrez votre courriel et votre nom, vous êtes bon pour aller.
J'ai utilisé la solution ci-dessus par iecanfly . À l'aide de mon git nom d'utilisateur et le mot de passe ne fonctionne pas , je
entré
nom d'utilisateur : jenkins
e-mail : jenkins@localhost
Qui a résolu le problème.
Vous pouvez également utiliser le protocole SSH dans Jenkins et naviguez jusqu'au répertoire d'espace de travail, et ensuite il vous suffit d'exécuter la commande git config de l'utilisateur.nom et l'utilisateur.e-mail commandes normalement.
Si vous exécutez Jenkins dans un conteneur Docker, vous devez exec dans le conteneur
docker exec -it <CONTAINER_ID> sh
puis exécutez l'a suggéré commandes git avec vous e-mail et nom.