from __future__ import with_statement
from fabric.api import run, cd
from fabric.context_managers import prefix

BASE_DIR = "/srv/dochub/source"
ACTIVATE = 'source ../ve/bin/activate'


def deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("../backup_db.sh")
        run("git pull")
        run("pip install -r requirements.txt -q")
        run("npm run build")
        run("./manage.py collectstatic --noinput -v 0")
        run("./manage.py migrate")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def light_deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("git pull")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def restart_workers():
    run('sudo systemctl stop dochub-celery')
    run('sudo systemctl start dochub-celery')


def stats():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('./manage.py stats')

from __future__ import with_statement
from fabric.api import run, cd
from fabric.context_managers import prefix

BASE_DIR = "/srv/dochub/source"
ACTIVATE = 'source ../ve/bin/activate'


def deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("../backup_db.sh")
        run("git pull")
        run("pip install -r requirements.txt -q")
        run("npm install --no-progress")
        run("npm run build")
        run("./manage.py collectstatic --noinput -v 0")
        run("./manage.py migrate")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def light_deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("git pull")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def restart_workers():
    run('sudo systemctl stop dochub-celery')
    run('sudo systemctl start dochub-celery')


def stats():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('./manage.py stats')

Add npm install to the fabric script
Add npm install to the fabric script

  from __future__ import with_statement
  from fabric.api import run, cd
  from fabric.context_managers import prefix
  
  BASE_DIR = "/srv/dochub/source"
  ACTIVATE = 'source ../ve/bin/activate'
  
  
  def deploy():
      with cd(BASE_DIR), prefix(ACTIVATE):
          run('sudo systemctl stop dochub-gunicorn.socket')
          run('sudo systemctl stop dochub-gunicorn.service')
          run("../backup_db.sh")
          run("git pull")
          run("pip install -r requirements.txt -q")
+         run("npm install --no-progress")
          run("npm run build")
          run("./manage.py collectstatic --noinput -v 0")
          run("./manage.py migrate")
          run('sudo systemctl start dochub-gunicorn.service')
          run('sudo systemctl start dochub-gunicorn.socket')
  
  
  def light_deploy():
      with cd(BASE_DIR), prefix(ACTIVATE):
          run('sudo systemctl stop dochub-gunicorn.socket')
          run('sudo systemctl stop dochub-gunicorn.service')
          run("git pull")
          run('sudo systemctl start dochub-gunicorn.service')
          run('sudo systemctl start dochub-gunicorn.socket')
  
  
  def restart_workers():
      run('sudo systemctl stop dochub-celery')
      run('sudo systemctl start dochub-celery')
  
  
  def stats():
      with cd(BASE_DIR), prefix(ACTIVATE):
          run('./manage.py stats')
  
Add npm install to the fabric script
## Code Before:
from __future__ import with_statement
from fabric.api import run, cd
from fabric.context_managers import prefix

BASE_DIR = "/srv/dochub/source"
ACTIVATE = 'source ../ve/bin/activate'


def deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("../backup_db.sh")
        run("git pull")
        run("pip install -r requirements.txt -q")
        run("npm run build")
        run("./manage.py collectstatic --noinput -v 0")
        run("./manage.py migrate")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def light_deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("git pull")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def restart_workers():
    run('sudo systemctl stop dochub-celery')
    run('sudo systemctl start dochub-celery')


def stats():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('./manage.py stats')

## Instruction:
Add npm install to the fabric script
## Code After:
from __future__ import with_statement
from fabric.api import run, cd
from fabric.context_managers import prefix

BASE_DIR = "/srv/dochub/source"
ACTIVATE = 'source ../ve/bin/activate'


def deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("../backup_db.sh")
        run("git pull")
        run("pip install -r requirements.txt -q")
        run("npm install --no-progress")
        run("npm run build")
        run("./manage.py collectstatic --noinput -v 0")
        run("./manage.py migrate")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def light_deploy():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('sudo systemctl stop dochub-gunicorn.socket')
        run('sudo systemctl stop dochub-gunicorn.service')
        run("git pull")
        run('sudo systemctl start dochub-gunicorn.service')
        run('sudo systemctl start dochub-gunicorn.socket')


def restart_workers():
    run('sudo systemctl stop dochub-celery')
    run('sudo systemctl start dochub-celery')


def stats():
    with cd(BASE_DIR), prefix(ACTIVATE):
        run('./manage.py stats')
