1
votes

Plugin de version Jenkins + Maven: release: branch + Git - Impossible de valider les fichiers

J'essaie de créer une version en utilisant le plugin de version Maven, mais j'obtiens une erreur

   Cloning the remote Git repository
    Cloning repository ssh://git@git.domain.ua/myproject/mylib.git
     > git init /opt/jenkins/workspace/MYJOB # timeout=10
    Fetching upstream changes from ssh://git@git.domain.ua/myproject/mylib.git
     > git --version # timeout=10
    using GIT_SSH to set credentials JENKINS(jenkins user with jenkins@USER)

    git checkout development
    Switched to a new branch 'development'
    Branch development set up to track remote branch development from origin.
    Parsing POMs
    Established TCP socket on 44626

[INFO] Executing: /bin/sh -c cd /opt/jenkins/workspace/MYJOB && git push ssh://git@git.domain.ua/myproject/mylib.git refs/heads/development:refs/heads/development

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:branch (default-cli) on project MYPROJECT: Unable to commit files
[ERROR] Provider message:
[ERROR] The git-push command failed.
[JENKINS] Archiving /opt/jenkins/workspace/MYPROJECT/pom.xml to *****-SNAPSHOT.pom
[ERROR] Command output:
[ERROR] GitLab: The project you were looking for could not be found.
[ERROR] fatal: The remote end hung up unexpectedly

Dans mon pom.xml ces paramètres: p>

 <scm>
    <developerConnection>scm:git:ssh://git@git.domain.ua/myproject/mylib.git</developerConnection>
    <url>https://git.domain.ua/myproject/mylib</url>
    <tag>HEAD</tag>
</scm>

Mes paramètres de travail Jenkins:

URL du référentiel: ssh: //git@git.domain.ua/myproject/mylib .git

Identifiants: ma clé ssh a également été importée dans le dépôt Git en tant que clé de déploiement

Spécificateur de branche (vide pour 'any'): * / development

Objectifs et options de Maven Release: -Dresume = false release: branch javadoc: javadoc

Objectifs et options de DryRun: -Dresume = false -DdryRun = true release: prepare

Comme vous pouvez le voir à partir des journaux, Git-plugin clone avec succès une branche, mais Maven ne peut pas faire de commit pour une raison quelconque:

[ERROR] Command output:
[ERROR] GitLab: The project you were looking for could not be found.
[ERROR] fatal: The remote end hung up unexpectedly

Je suppose que Maven ne sait rien de la clé qui utilise le plugin Git, mais je n'arrive pas à comprendre comment configurer le plugin Maven Release pour utiliser la même clé?


0 commentaires

3 Réponses :


0
votes

L'erreur est dans le clone via le protocole https et le push via le protocole ssh . Vous devez définir le protocole à utiliser pour le transfert. Pour la comparaison, utilisez le résultat de la commande: git remote show origin , avec le paramètre scm défini dans le fichier pom.xml . Exemple:

<scm>
   <connection>scm:git:git@github.com:user/repo-name.git</connection>
   <developerConnection>scm:git:git@github.com:user/repo-name.git</developerConnection>
   <url>git@github.com:user/repo-name.git</url>            
   <tag>HEAD</tag>
</scm>


1 commentaires

Merci, mais malheureusement cela n'a pas aidé, l'erreur existe toujours. J'ai joué avec différentes options, mais sans succès



0
votes

essayez de supprimer le ssh: // et utilisez simplement: scm: git: git@git.domain.ua/myproject/mylib.git remplacez la balise url par une balise de connexion avec la valeur: scm: git: git@git.domain.ua/myproject/mylib.git

À la fin, ça va être quelque chose comme ça: scm: git: git@git.domain.ua/myproject/mylib.git scm: git: git@git.domain.ua/myproject/mylib.git

De plus, le plugin recherche un projet "MYPROJECT" en majuscules, ou je suppose que dans gitlab vous avez "myproject", vous pouvez vérifier et modifier toutes les références "MYPROJECT" en "myproject" et réessayer.

Meilleures salutations,


0 commentaires

1
votes

Essayez de faire ceci dans la configuration de votre tâche Jenkins:

  1. Mettez à jour le spécificateur de branche (vide pour "any") avec la syntaxe refs / heads / development .
  2. Sous SCM > Git > Comportements supplémentaires , sélectionnez Payer vers une succursale locale spécifique , puis saisissez ** comme nom de la succursale.
  3. Sous Environnement de création , sélectionnez Agent SSH > Informations d'identification spécifiques , puis spécifiez la même clé SSH que celle que vous avez utilisée pour cloner le référentiel.

0 commentaires