2017-05-27 1 views
1

Nous travaillons sur une configuration Travis CI pour une bibliothèque C++ construite avec GNUmake. Le fichier de configuration se trouve au .travis.yml. C'est un clone Git de la bibliothèque utilisée pour les tests et l'expérimentation.Est-il correct d'utiliser BUILD_MODE dans un appel make?

Le fichier de configuration a quelques configurations de bibliothèque dans le matrix:

matrix: 
    - BUILD_MODE="shared" 
    - BUILD_MODE="static" 
    - BUILD_MODE="no-asm" 
    - BUILD_MODE="asan" 
    - BUILD_MODE="ubsan" 
    - BUILD_MODE="valgrind" 

Notre règle script est:

script: 
    - make clean &>/dev/null && make 
    - ./cryptest.exe v && ./cryptest.exe tv all 

Puisque nous utilisons seulement make, la même configuration par défaut est construit pour chaque article dans le matrix. Les résultats de construction sont disponibles au Travis/noloader/cryptopp. Les différentes cibles de fichier makefile, comme make no-asm, ne sont pas exercées.

Ma question est, est-il correct de changer la règle script à quelque chose comme:

script: 
    - make clean &>/dev/null && make "$BUILD_MODE" 
    - ./cryptest.exe v && ./cryptest.exe tv all 

Ou, exerce différentes configurations réalisées d'une manière différente? Si oui, alors comment le faisons-nous?

+0

Les balises C++ et GNU-Make ont été ajoutées pour être complètes. Nous croyons que les étiquettes n'ont presque rien à voir avec la question, mais nous pourrions nous tromper. – jww

Répondre

0

Ma question est, est-il acceptable de modifier la règle de script à quelque chose comme:

script: 
    - make clean &>/dev/null && make "$BUILD_MODE" 
    - ./cryptest.exe v && ./cryptest.exe tv all 

Cela fonctionne, mais ...


Ou, est exerçant différentes configurations réalisées d'une manière différente? Si oui, alors comment le faisons-nous?

... nous ne savons pas si c'est la façon recommandée de faire les choses.

Si quelqu'un sait quelle est la meilleure pratique, alors s'il vous plaît ajouter une réponse. Je serais heureux de l'accepter si elle provient d'une source crédible, comme les docs Travis.