summaryrefslogtreecommitdiffhomepage
path: root/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'tasks.py')
-rw-r--r--tasks.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/tasks.py b/tasks.py
new file mode 100644
index 00000000..94bf0aa2
--- /dev/null
+++ b/tasks.py
@@ -0,0 +1,51 @@
+from os import mkdir
+from os.path import join
+from shutil import rmtree, copytree
+
+from invoke import Collection, ctask as task
+from invocations import docs as _docs
+from invocations.packaging import publish
+
+
+d = 'sites'
+
+# Usage doc/API site (published as docs.paramiko.org)
+docs_path = join(d, 'docs')
+docs_build = join(docs_path, '_build')
+docs = Collection.from_module(_docs, name='docs', config={
+ 'sphinx.source': docs_path,
+ 'sphinx.target': docs_build,
+})
+
+# Main/about/changelog site ((www.)?paramiko.org)
+www_path = join(d, 'www')
+www = Collection.from_module(_docs, name='www', config={
+ 'sphinx.source': www_path,
+ 'sphinx.target': join(www_path, '_build'),
+})
+
+
+# Until we move to spec-based testing
+@task
+def test(ctx):
+ ctx.run("python test.py --verbose")
+
+@task
+def coverage(ctx):
+ ctx.run("coverage run --source=paramiko test.py --verbose")
+
+
+# Until we stop bundling docs w/ releases. Need to discover use cases first.
+@task
+def release(ctx):
+ # Build docs first. Use terribad workaround pending invoke #146
+ ctx.run("inv docs")
+ # Move the built docs into where Epydocs used to live
+ target = 'docs'
+ rmtree(target, ignore_errors=True)
+ copytree(docs_build, target)
+ # Publish
+ publish(ctx, wheel=True)
+
+
+ns = Collection(test, coverage, release, docs=docs, www=www)