diff options
Diffstat (limited to 'tasks.py')
-rw-r--r-- | tasks.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tasks.py b/tasks.py new file mode 100644 index 0000000..15e983b --- /dev/null +++ b/tasks.py @@ -0,0 +1,60 @@ +import os +import shutil +from invoke import task, run + +with open('tox.ini') as fp: + lines = fp.read().split("\n") + dockers = [line.split("=")[1].strip() for line in lines + if line.find("name") != -1] + + +@task +def devenv(c): + """Builds a development environment: downloads, and starts all dockers + specified in the tox.ini file. + """ + clean(c) + cmd = 'tox -e devenv' + for d in dockers: + cmd += " --docker-dont-stop={}".format(d) + print("Running: {}".format(cmd)) + run(cmd) + + +@task +def linters(c): + """Run code linters""" + run("flake8") + + +@task +def all_tests(c): + """Run all linters, and tests in redis-py. This assumes you have all + the python versions specified in the tox.ini file. + """ + linters(c) + tests(c) + + +@task +def tests(c): + """Run the redis-py test suite against the current python, + with and without hiredis. + """ + run("tox -e plain -e hiredis") + + +@task +def clean(c): + """Stop all dockers, and clean up the built binaries, if generated.""" + if os.path.isdir("build"): + shutil.rmtree("build") + if os.path.isdir("dist"): + shutil.rmtree("dist") + run("docker rm -f {}".format(' '.join(dockers))) + + +@task +def package(c): + """Create the python packages""" + run("python setup.py build install") |