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.
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.
Me relie au scénario où l'espace de travail n'a pas été nettoyé, utilisé:
Gestion du code source -> Autres comportements -> Nettoyer après le paiement
Une autre option consiste à utiliser Plug-in de nettoyage d’espace de travail
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,
Cela nettoiera réellement l’espace de travail à chaque fois et vous obtiendrez donc le code mis à jour.
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