2017-06-09 1 views
1

J'utilise TravisCI's Build Stages pour séparer mon travail à deux étapes:Déclencher une étape de construction TravisCI conditionnellement?

  1. construire et tester sur de multiples environnements.
  2. Construire et déployer si l'étape 1 passe.

Et je veux Travis à exécuter les travaux sur commits à deux branches GitHub, master et dev, et tirer des demandes de master et dev. Cependant, je veux seulement courir la deuxième étape quand un engagement à master se produit.

Existe-t-il un moyen d'ignorer complètement l'étape 2 dans les validations aux branches qui ne sont pas master, et sur les demandes d'extraction?

C'est ce que mon .travis.yml ressemble au moment de la rédaction: https://github.com/SammyIsra/photostream-react/blob/c354a62c3cc963b345a5c2fb95658c90ddc39d21/.travis.yml

Mise à jour: cela semble ne pas être possible pour l'instant. Cependant, l'équipe TravisCI peut travailler sur quelque chose comme ça, à partir de this comment on the Build Stages feedback board. Chaque fois que j'apprends qu'il a été ajouté comme une fonctionnalité, ou que ce ne sera certainement pas possible jamais, je vais changer cette question.

Répondre

0

Il ne semble pas y avoir moyen d'ignorer des branches spécifiques lors du déclenchement de travaux dans build stages section, mais il semble qu'il existe un moyen de ne déclencher vos déploiements que sur master.

Dans votre étape de construction script section, vous pouvez envelopper la commande npm run build dans un communiqué Bash if rapide pour tester la environment variable which shows what branch you're on:

if [ TRAVIS_BRANCH == "master" ]; then npm run build; fi 

Ensuite, dans votre section deploy Surge, vous pouvez restrict the deployment to a particular branch avec:

deploy: 
    ... 
    on: master 

Et fondamentalement la même chose pour le NPM deployment:

deploy: 
    ... 
    on: 
     branch: master 

Remarque: Je n'ai pas essayé cela moi-même, donc cela peut ou peut ne pas fonctionner en combinaison avec la nouvelle fonctionnalité des étapes de construction.