Added: Fabric task to deploy current project to remote host
This commit is contained in:
parent
b0446ab4ab
commit
c7c57a2de9
|
@ -17,7 +17,7 @@ For more help on a particular command
|
|||
|
||||
from fabric.api import env
|
||||
|
||||
from fabfile.tasks import code_quality, build_docs, push_docs, clean, test
|
||||
from fabfile.tasks import build_docs, clean, code_quality, configure, deploy, push_docs, test, start, stop
|
||||
|
||||
|
||||
# Without this, `fab -l` would display the whole docstring as preamble
|
||||
|
@ -25,11 +25,15 @@ __doc__ = ""
|
|||
|
||||
# This list defines which tasks are made available to the user
|
||||
__all__ = [
|
||||
"code_quality",
|
||||
"test",
|
||||
"build_docs",
|
||||
"push_docs",
|
||||
"clean",
|
||||
"code_quality",
|
||||
"configure",
|
||||
"deploy",
|
||||
"push_docs",
|
||||
"start",
|
||||
"stop",
|
||||
"test",
|
||||
]
|
||||
|
||||
# Honour the user's ssh client configuration
|
||||
|
|
|
@ -315,4 +315,46 @@ def clean():
|
|||
"""Clean up files generated by fabric commands."""
|
||||
with hide('running', 'stdout'):
|
||||
with cd(PROJECT_ROOT):
|
||||
run(r"find . -name '*.pyc' -exec rm '{}' \;")
|
||||
with settings(warn_only=True):
|
||||
run(r"find . -name '*.pyc' -exec rm '{}' \;")
|
||||
|
||||
|
||||
@task
|
||||
def start(path):
|
||||
"""
|
||||
Start pybitmessage on the target host
|
||||
.. todo:: automate this: xpra start :7 && DISPLAY=:7 src/bitmessagemain.py &
|
||||
"""
|
||||
with cd(path):
|
||||
pass
|
||||
|
||||
|
||||
@task
|
||||
def stop():
|
||||
"""Stop pybitmessage on the target host"""
|
||||
with settings(warn_only=True):
|
||||
run('pkill -9 pybitmessage; pkill xpra')
|
||||
|
||||
|
||||
@task
|
||||
def configure():
|
||||
"""Prepare a host for deployment"""
|
||||
sudo('apt install -y rsync xpra pyqt4-dev-tools')
|
||||
|
||||
|
||||
@task
|
||||
def deploy():
|
||||
"""
|
||||
Deploy current version to test host.
|
||||
"""
|
||||
clean()
|
||||
stop()
|
||||
remote_dir = os.path.join(run('pwd'), 'pybitmessage')
|
||||
rsync_project(
|
||||
remote_dir=remote_dir,
|
||||
local_dir=os.path.join(PROJECT_ROOT, ''),
|
||||
exclude=[
|
||||
'.git/',
|
||||
]
|
||||
)
|
||||
start(remote_dir)
|
||||
|
|
Reference in New Issue
Block a user