web-dev-qa-db-fra.com

Jenkins Git Plugin ne récupère pas les dernières modifications avant de créer un travail

Je travaille avec Jenkins CI et j'essaie de configurer correctement mes travaux pour qu'ils utilisent git.

Le plugin git est installé et configuré pour l'un de mes travaux. Lorsque je crée le travail, je pense qu'il va extraire les dernières modifications pour la branche que je spécifie, puis poursuivre avec le reste du processus de construction (par exemple, des tests unitaires, etc.).

Quand je regarde la sortie de la console, je vois

> git fetch --tags --progress ssh://gerrit@git-dev/Util +refs/heads/*:refs/remotes/Origin/*
 > git rev-parse Origin/some_branch^{commit}
Checking out Revision <latest_SHA1> (Origin/some_branch)
 > git config core.sparsecheckout
 > git checkout -f <latest_SHA1>
 > git rev-list <latest_SHA1>

Je vois que le plugin va chercher et vérifier le hachage de commit approprié, mais lorsque les tests sont exécutés, il semble que le référentiel n’a pas été mis à jour du tout. les changements n'ont jamais été retirés. 

Ne devrait-il pas tirer avant d'essayer de construire? 

J'ai la version 1.8.5 installée sur ma machine Jenkins, qui est une version recommandée . https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

Après avoir vérifié d'autres questions similaires sur SO, leurs réponses n'ont pas été utiles pour mon problème.

22
polarice

Je crois que Jenkins extrait les modifications et crée son propre répertoire tmp. Ainsi, votre répertoire de référentiel ne sera pas mis à jour bien que Jenkins construise correctement le nouveau code dans son propre sandbox.

Ma solution à cela a été d'ajouter une étape "git pull" dans mon processus de construction, comme ceci:

Lorsqu'un nouveau commit est remis à mon dépôt GitHub:
1. Construire mon projet

En cas de succès, procédez comme suit après la construction:
1. Exécuter Shell:

cd /your/repo/directory/
git pull

Vous pouvez évidemment modifier la commande "git pull" pour faire ce que vous devez faire si un "pull" ne fonctionne pas pour vous.

6
bpgriner

Me relie au scénario où l'espace de travail n'a pas été nettoyé, utilisé:

27
Abhijeet

Je sais que la question est ancienne, mais il existe un autre moyen de le faire. Dans la section Build Environment, sélectionnez "Supprimer l'espace de travail avant le début de la génération".

Voir la capture d'écran ci-dessous,

 enter image description here

Cela nettoiera réellement l’espace de travail à chaque fois et vous obtiendrez donc le code mis à jour.

0
Harish Talanki

Essayez d'insérer votre chemin de branche avec ce format:

refs/remotes/<remoteRepoName>/<branchName>

Tracks/checks out the specified branch.
E.g. refs/remotes/Origin/master
0