40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import os
|
|
|
|
from fabric import Connection
|
|
from invoke import task
|
|
|
|
|
|
@task()
|
|
def deploy(c):
|
|
"""Make sure proxy_user is set to your neuf username."""
|
|
project_path = "/var/www/neuf.no/mailadmin"
|
|
proxy_user = os.getenv("DEPLOY_USER", os.getenv("USER"))
|
|
|
|
c = Connection(
|
|
host="gitdeploy@dreamcast.neuf.no",
|
|
gateway=Connection("login.neuf.no", user=proxy_user),
|
|
)
|
|
|
|
with (
|
|
c.cd(project_path),
|
|
c.prefix(f"source {project_path}/venv/bin/activate"),
|
|
):
|
|
c.run("git pull") # Get source
|
|
c.run("pip install -U pip")
|
|
c.run("pip install -r requirements.txt") # install deps in virtualenv
|
|
with c.cd("mailadmin/static/mailadmin"): # install and compile frontend deps
|
|
c.run("npm i")
|
|
c.run("npm run build")
|
|
c.run("python manage.py collectstatic --noinput -i node_modules") # Collect static
|
|
c.run("python manage.py migrate") # Run DB migrations
|
|
|
|
# Reload gunicorn
|
|
c.sudo("/usr/bin/supervisorctl pid lister.neuf.no | xargs kill -HUP", shell=False)
|
|
|
|
|
|
@task
|
|
def build(c):
|
|
with c.cd("mailadmin/static/mailadmin"):
|
|
c.run("npm i")
|
|
c.run("npm run build")
|