2015-09-24 1 views
4

Mon cas d'utilisation actuel est que j'utilise travis-ci très heureusement pour exécuter mes cas de test pour un projet python. Cela signale un échec ou un échec en fonction du passage des tests py.unit.Est-il possible d'exécuter 2 fichiers .travis.yml séparés du même référentiel github?

Je voudrais également ajouter la vérification pep8 à ce dépôt, mais je ne veux pas que mes tests de fonctionnalités de base échouent s'il y a du code mal formaté, mais j'aimerais bien le savoir.

Toutes les manières possibles de traiter cela seraient utiles, mais ma pensée immédiate était, est-il possible d'avoir 2 coureurs de test séparés, fonctionnant sur le même référentiel? ".travis.yml" exécutant les tests principaux, et un processus séparé surveillant ma conformité pep8 de ".travis2.yml" par exemple.

Je voudrais alors avoir 2 tâches en cours d'exécution, et voir si mes tests de fonctionnalité de base sont encore OK en un coup d'œil (à partir du badge github par exemple), mais aussi comment va ma conformité pep8.

Merci

Mark

+0

Il se révèle qu'il ya un service pour faire des contrôles de pep8 et d'autres pour repo python github appelé landscape.io – Mark

Répondre

3

De http://docs.travis-ci.com/user/customizing-the-build/:

Travis CI utilise le fichier .travis.yml dans la racine de votre dépôt à en apprendre davantage sur votre projet et la façon dont vous voulez que votre Builds être exécuté.

Un mélange de matrix et allow_failures pourrait être utilisé dans le fichier .travis.yml unique pour traiter votre cas d'utilisation d'avoir deux emplois courent où l'on créer des rapports de vos tests de fonctionnalité et une deuxième version vous donne des commentaires sur votre pep8 conformité,

Par exemple, le fichier .travis.yml suivant provoque l'apparition de deux générations sur des traivs. Dans une seule des versions (c'est-à-dire PEP=true), la vérification pep8 se produirait. Si la pep8 vérification n'a pas, il ne serait pas considéré comme un échec en raison de allow_failures:

language: python 

env: 
    - PEP=true 
    - PEP=false 
matrix: 
    allow_failures: 
    - env: PEP=true 
script: 
    - if $PEP ; then pep8 ; fi 
    - python -m unittest discover 
+0

Merci très beaucoup @nfranklin. J'ai mis à jour le code pour le faire et cela fonctionne très bien. Le seul petit inconvénient est qu'il n'y a pas un très bon moyen d'afficher le travail de la matrice dans mon readme.mith github mais je suis sûr que cela viendra un jour. Le seul ajout que j'ai fait a été de mettre le coureur de test de l'unité dans l'instruction else, et comme il y a quelques grandes étapes de configuration, j'ai aussi bouclé l'étape d'installation avec les instructions if. [mon .travis.yml] (https://github.com/DiamondLightSource/Savu/blob/master/.travis.yml) – Mark

+1

En rapport avec votre problème sur l'affichage du travail de la matrice sur votre readme.mith de github, j'ai trouvé ce lien question: (http://stackoverflow.com/questions/25903891/can-travis-ci-generate-a-badge-for-a-specific-matrix-configuration). L'application web suggérée semble être utile, je l'ai essayé avec votre repo en utilisant le lien suivant: https://travis-matrix-badges.herokuapp.com/repos/DiamondLightSource/Savu/branches/master – nfranklin