Comment configurer Travis-CI pour créer des requêtes pull et fusionner pour maîsortingser la redondance

Pour le mettre en termes de “BDD”:

Contexte:
Étant donné que je consortingbue à un repo GH

Quand je crée une demande de tirage
Alors Travis devrait construire le dernier commit

Quand je pousse à une requête pull existante
Alors Travis devrait construire le dernier commit

Lorsque je fusionne une demande de tirage pour maîsortingser
Alors Travis devrait construire le maître

J’ai été troublé par les parameters “build pushes” et “build PRs” de Travis-CI, comme suit:

  • L’activation des deux entraîne que chaque requête de tirage soit générée deux fois par Travis
    • une fois pour le commettre sur cette twig
    • et encore une fois pour la fusion commit de cette twig dans sa destination
  • L’activation de seulement “build PR” entraîne la création de PR, mais n’entraîne pas de compilation post-fusion (c’est-à-dire sur le maître).
  • Activer “Pousser” brute-force répond aux critères ci-dessus en construisant toutes les poussées au repo. Vous pouvez essayer de manipuler les choses en faisant des listes blanches et en liste noire, mais cela vous piquera probablement à moins que vous soyez rigoureusement discipliné avec les noms de twig.

Ceci est expliqué plus en détail dans la documentation de Travis-CI et la question n ° 3241 de GH .

Quelqu’un connaît-il une configuration qui répond aux critères ci-dessus?

Juste trouvé dans les documents travis

Ajouter à .travis.yml

 if: type = push 

alternativement:

 if: type = pull_request 

L’approche de la liste blanche décrite dans la réponse acceptée présente certaines limites importantes. En particulier, il ne prend pas en charge la création de twigs arbitraires sans redondance sans ouvrir un PR.

J’ai ouvert un numéro demandant une meilleure solution .

Vous pouvez utiliser le prochain workflow si vous souhaitez tester non seulement la twig master , mais aussi d’autres twigs:

  • Gardez les deux “Construire des poussées” et “Construire des requêtes” sur ON
  • Ajouter des twigs:except directive à votre .travis.yml :

     twigs: except: - /^pr\..*/ 

Dans cette configuration:

  • tout engagement à créer une twig feature-A déclenchera la construction
  • toute validation de twig pr.feature-A ne déclenchera pas la construction
  • si la twig pr.feature-A est utilisée dans la requête d’ouverture, la génération sera déclenchée

Exemple de workflow

  • Branche WIP temporaire partagée entre plusieurs développeurs: wip.feature-A , tout commit sur cette twig déclenchera la construction
  • Lorsque la twig est prête à être fusionnée pour master vous pouvez la renommer de wip.feature-A à pr.feature-A et ouvrir la requête pull
  • si, lors de l’examen de la demande de tirage, vous souhaitez appliquer de nouveaux correctifs, il vous suffit de passer à la fonction pr.feature-A

Sur toutes les étapes ci-dessus, une seule construction sera déclenchée.