Skip to content
This repository was archived by the owner on Sep 4, 2025. It is now read-only.
/ django-makefile Public archive

Makefile templates to aid in development and deployment of Django sites

Notifications You must be signed in to change notification settings

kaleissin/django-makefile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

django-makefile

Makefile templates to aid in development and deployment of Django sites

Why Make?

Because it's there.

Because calling commands from a file hosted with the rest of the source greatly simplifies deployment scripts. The deployment script need know of fewer paths.

Because

cd someproject-dir
make test

is easier to type than

django-admin.py test --settings=someproject.settings.test --pythonpath=/path/to/project/src

especially on the Monday the first working day after your vacation.

Because fabric gave me indigestion.

Deployment

Currently I use a shell script, something along the lines of:

#!/bin/bash

PROJECT_HOME="/path/to/project"
REMOTE="user@remote.machine.some.domain"
REMOTE_HOME="/path/on/remote/machine"
REMOTE_VENV="/path/to/remote/virtualenv"
LOCAL_VENV="/path/to/local/virtualenv"
SECRET_KEY='production_secret_key_whatever_that_is'
REMOTE_PREFIX="export SECRET_KEY='${SECRET_KEY}' "
REMOTE_MAKE="${REMOTE_PREFIX} && make -C ${REMOTE_HOME} VIRTUAL_ENV=${REMOTE_VENV}"
LOCAL_MAKE="make -C ${PROJECT_HOME} VIRTUAL_ENV=${LOCAL_VENV} "

${LOCAL_MAKE} REMOTE_URI=${REMOTE}:${REMOTE_HOME} rsync

ssh ${REMOTE} "${REMOTE_MAKE} all"

This is not under version control since it needs to be updated per project, per client machine, and per remote machine.

Most Useful Targets

cmd:
Runs any django command with production settings (in the CMD variable)
refresh:
Touches the wsgi-file, thereby refreshing/reloading the site
showenv:
Dumps some relevant environment variables
djangohelp:
Runs django-admin.py help
test:
Runs all tests
bootstrap:
Sets up a virtualenv and runs pip, provided there's a requirements-file
all:
Regenerates static files and reloads the site

About

Makefile templates to aid in development and deployment of Django sites

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published