Makefile

Example of project Makefile

makefile

 

Other

SHELL := /bin/bash

help:
    @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'

install:
    pipenv install

activate:
    pipenv shell

run:
    python manage.py runserver

migration:
    python manage.py makemigrations

migrate:
    python manage.py migrate

superuser:
    python manage.py createsuperuser

heroku:
    git push heroku master

deploy:
    docker-compose build
    docker-compose up -d

down:
    docker-compose down

 

Other2

.PHONY: all help translate test clean update compass collect rebuild

SETTINGS={{ project_name }}.settings
TEST_SETTINGS={{ project_name }}.test_settings

# target: all - Default target. Does nothing.
all:
    @echo "Hello $(LOGNAME), nothing to do by default"
    @echo "Try 'make help'"

# target: help - Display callable targets.
help:
    @egrep "^# target:" [Mm]akefile

# target: translate - calls the "makemessages" django command
translate:
    cd {{ project_name }} && django-admin.py makemessages --settings=$(SETTINGS) -i "site-static/*" -a --no-location

# target: test - calls the "test" django command
test:
    django-admin.py test --settings=$(TEST_SETTINGS)

# target: clean - remove all ".pyc" files
clean:
    django-admin.py clean_pyc --settings=$(SETTINGS)

# target: update - install (and update) pip requirements
update:
    pip install -U -r requirements.pip

# target: compass - compass compile all scss files
compass:
    cd {{ project_name }}/compass && compass compile

# target: collect - calls the "collectstatic" django command
collect:
    django-admin.py collectstatic --settings=$(SETTINGS) --noinput

# target: rebuild - clean, update, compass, collect, then rebuild all data
rebuild: clean update compass collect
    django-admin.py reset_db --settings=$(SETTINGS) --router=default --noinput
    django-admin.py syncdb --settings=$(SETTINGS) --noinput
    django-admin.py migrate --settings=$(SETTINGS)
    #django-admin.py loaddata --settings=$(SETTINGS) <your fixtures here>

 

Other3 (django-makefile)

SHELL := /bin/sh

# SET THIS! Directory containing wsgi.py
# PROJECT := someproject

LOCALPATH := ./src
PYTHONPATH := $(LOCALPATH)/
SETTINGS := production
DJANGO_SETTINGS_MODULE = $(PROJECT).settings.$(SETTINGS)
DJANGO_POSTFIX := --settings=$(DJANGO_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
LOCAL_SETTINGS := local
DJANGO_LOCAL_SETTINGS_MODULE = $(PROJECT).settings.$(LOCAL_SETTINGS)
DJANGO_LOCAL_POSTFIX := --settings=$(DJANGO_LOCAL_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
TEST_SETTINGS := test
DJANGO_TEST_SETTINGS_MODULE = $(PROJECT).settings.$(TEST_SETTINGS)
DJANGO_POSTFIX := --settings=$(DJANGO_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
DJANGO_TEST_POSTFIX := --settings=$(DJANGO_TEST_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
PYTHON_BIN := $(VIRTUAL_ENV)/bin

.PHONY: clean showenv coverage test bootstrap pip virtualenv sdist virtual_env_set

showenv:
    @echo 'Environment:'
    @echo '-----------------------'
    @$(PYTHON_BIN)/python -c "import sys; print 'sys.path:', sys.path"
    @echo 'PYTHONPATH:' $(PYTHONPATH)
    @echo 'PROJECT:' $(PROJECT)
    @echo 'DJANGO_SETTINGS_MODULE:' $(DJANGO_SETTINGS_MODULE)
    @echo 'DJANGO_LOCAL_SETTINGS_MODULE:' $(DJANGO_LOCAL_SETTINGS_MODULE)
    @echo 'DJANGO_TEST_SETTINGS_MODULE:' $(DJANGO_TEST_SETTINGS_MODULE)

showenv.all: showenv showenv.virtualenv showenv.site

showenv.virtualenv: virtual_env_set
    PATH := $(VIRTUAL_ENV)/bin:$(PATH)
    export $(PATH)
    @echo 'VIRTUAL_ENV:' $(VIRTUAL_ENV)
    @echo 'PATH:' $(PATH)

showenv.site: site_set
    @echo 'SITE:' $(SITE)

djangohelp: virtual_env_set
    $(PYTHON_BIN)/django-admin.py help $(DJANGO_POSTFIX)

collectstatic: virtual_env_set
    -mkdir -p .$(LOCALPATH)/static
    $(PYTHON_BIN)/django-admin.py collectstatic -c --noinput $(DJANGO_POSTFIX)

runserver: virtual_env_set
    $(PYTHON_BIN)/django-admin.py runserver $(DJANGO_POSTFIX)

syncdb: virtual_env_set
    $(PYTHON_BIN)/django-admin.py syncdb $(DJANGO_POSTFIX)

cmd: virtual_env_set
    $(PYTHON_BIN)/django-admin.py $(CMD) $(DJANGO_POSTFIX)

localcmd: virtual_env_set
    $(PYTHON_BIN)/django-admin.py $(CMD) $(DJANGO_LOCAL_POSTFIX)

refresh:
    touch src/$(PROJECT)/*wsgi.py

rsync:
    rsync -avz --checksum --exclude-from .gitignore --exclude-from .rsyncignore . ${REMOTE_URI}

compare:
    rsync -avz --checksum --dry-run --exclude-from .gitignore --exclude-from .rsyncignore . ${REMOTE_URI}

clean:
    find . -name "*.pyc" -print0 | xargs -0 rm -rf
    -rm -rf htmlcov
    -rm -rf .coverage
    -rm -rf build
    -rm -rf dist
    -rm -rf src/*.egg-info

test: clean virtual_env_set
    -$(PYTHON_BIN)/coverage run $(PYTHON_BIN)/django-admin.py test $(APP) $(DJANGO_TEST_POSTFIX)

coverage: virtual_env_set
    $(PYTHON_BIN)/coverage html --include="$(LOCALPATH)/*" --omit="*/admin.py,*/test*"

predeploy: test

register: virtual_env_set
    python setup.py register

sdist: virtual_env_set
    python setup.py sdist

upload: sdist virtual_env_set
    python setup.py upload
    make clean

bootstrap: virtualenv pip virtual_env_set

pip: requirements/$(SETTINGS).txt virtual_env_set
    pip install -r requirements/$(SETTINGS).txt

virtualenv:
    virtualenv --no-site-packages $(VIRTUAL_ENV)
    echo $(VIRTUAL_ENV)

all: collectstatic refresh

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *