web-dev-qa-db-fra.com

Hudson/Jenkins Git construisent toutes les branches

De nombreux développeurs créent des branches de fonctionnalités que je souhaiterais créer. Tous les soirs, nous exécutons un outil de qualité du code qui doit être exécuté sur toutes les branches. Je ne voudrais pas non plus une configuration statique car le nombre de branches change toutes les quelques semaines.

31
babsher

Dans la configuration de Git, il existe un champ 'Spécificateur de branche (vide par défaut):' Si vous le mettez ici **, toutes les branches de toutes les télécommandes seront construites.

ayant cela, vous pouvez utiliser une variable d’environnement $ {GIT_BRANCH} par ex. définir un titre pour la construction à l’aide de https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin ou à d’autres fins

37
Tomasz Bartczak

J'ai eu le même problème à résoudre. Spécifiquement, créez un fichier Zip de toutes les branches et proposez-les comme artefacts à utiliser dans différents travaux de test.

Dans "Branches à construire", mettez "**"

Ensuite, exécutez Shell:

while read -ra ITEM; do
  for i in "${ITEM[@]}"; do
    git checkout $i
    <do your stuff>
  done
done <<< $(git branch -r | grep -v "HEAD ->" | xargs -L 1 | cut -d'/' -f2)

Ceci lit la liste des branches, extrait chacune d’elles séparément et permet de faire des choses dans chacune d’elles. La commande <<< convertit cette sortie:

  Origin/HEAD -> Origin/master
  Origin/branch1
  Origin/master
  Origin/secondbranch

dans la liste de contrôle utilisable:

branch1
master
secondbranch
6
Squrppi

Ancienne question mais réponse un peu plus appropriée. Le plugin multi-branches ci-dessous vous permet de créer un type d'élément de construction qui ventilera les sous-projets avec les branches, synchronisant automatiquement la configuration du niveau supérieur au sous-projet.

https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

Pour une approche un peu plus complexe, le plug-in Seed vous donne beaucoup de flexibilité pour définir des sous-travaux.

https://github.com/jenkinsci/seed-plugin/wiki

1
kert

Le ** pour le spécificateur de branche s'exécutera sur toutes les branches ET toutes les balises. Si vous voulez juste des branches, utilisez un spécificateur de branche de refs/heads/*

0
Delta Echo