Les services Cloud CI tels que Travis CI sont souvent utilisés pour tester des projets hébergés sur GitHub. droite.
Fondamentalement, après avoir confirmé que le test a réussi dans l'environnement de développement local, la validation et la transmission doivent être effectuées, de sorte que le test doit également réussir Travis. Cependant, le test échoue parfois en raison d'erreurs dans le fichier de configuration Travis .travis.yml
ou en oubliant d'ajouter des bibliothèques dépendantes. Surtout dans le cas de bibliothèques dépendantes, si elles sont installées dans l'environnement de développement, les tests locaux réussiront et pourront être négligés.
Si le test échoue, il sera corrigé dans l'environnement local, puis poussé à nouveau et l'historique de validation de la branche distante sera pollué, donc les erreurs doivent être évitées autant que possible (surtout si vous le faites dans le référentiel de quelqu'un d'autre). Ainsi, pour un projet de langage Python ou Go, utilisez Docker pour configurer un environnement local propre, comme décrit dans .travis.yml
. J'ai créé un outil pour exécuter le test, Loci.
Tout d'abord, Docker est requis, donc installez-le à l'avance (j'omettrai la méthode d'installation de Docker).
Les locus peuvent être installés si Go est installé.
$ go get github.com/jkawamoto/loci
Si Homebrew est installé,
$ brew tap jkawamoto/loci
$ brew install loci
Vous pouvez le faire avec. Dans d'autres cas, il existe un binaire compilé sur GitHub, vous pouvez donc le télécharger et le placer dans votre chemin.
Si vous avez .travis.yml
dans votre répertoire actuel, exécutez simplement la commande loci
. Pour tester un autre fichier, passez loci <filepath>
et le chemin du fichier.
Loci contient des fichiers dans le répertoire courant et crée une image de conteneur avec les packages décrits dans .travis.yml
installés. L'image originale est ʻubuntu: latest`. Lors de la première exécution, l'installation du package prend un certain temps, mais après la deuxième exécution, s'il n'y a pas de changement dans le package dépendant, l'image du conteneur passé est réutilisée le cas échéant (fonction Docker).
Si vous avez votre propre serveur de cache APT ou serveur de cache PyPI, vous pouvez les utiliser en utilisant les indicateurs --apt-proxy
et --pypi-proxy
. (Référence: Création d'un serveur de cache Apt dans QNAP, [Création d'un serveur de cache Pypi dans QNAP](http://qiita.com/jkawamoto/items/ 082af79bdf9a381a1d1b)))
Toutes les options de commande sont les suivantes.
loci [global options] [script file]
If script file isn't given, .travis.yml will be used.
GLOBAL OPTIONS:
--name NAME, -n NAME creating a container named NAME to run tests,
and that container will not be deleted.
--tag TAG, -t TAG creating an image named TAG.
--base TAG, -b TAG use image TAG as the base image.
(default: "ubuntu:latest")
--verbose verbose mode, which prints Dockerfile and
entrypoint.sh.
--apt-proxy URL URL for a proxy server of apt repository.
[$APT_PROXY]
--pypi-proxy URL URL for a proxy server of pypi repository.
[$PYPI_PROXY]
--http-proxy URL URL for a http proxy server. [$HTTP_PROXY]
--https-proxy URL URL for a https proxy server. [$HTTPS_PROXY]
--no-proxy LIST Comma separated URL LIST for which proxies won't
be used. [$NO_PROXY]
--help, -h show help
--version, -v print the version
Actuellement, il ne prend en charge que Python et Go, nous prévoyons donc d'augmenter le nombre de langues prises en charge si nécessaire.
Recommended Posts