tox: add check-migrations environment
This commit is contained in:
parent
af7e404f84
commit
4c28f24b68
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# https://stackoverflow.com/questions/49778988/makemigrations-in-dev-machine-without-database-instance
|
||||||
|
CHECK_MIGRATIONS_SETTINGS=`mktemp`
|
||||||
|
trap "rm -f ${CHECK_MIGRATIONS_SETTINGS}" EXIT
|
||||||
|
cat <<EOF >${CHECK_MIGRATIONS_SETTINGS}
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.dummy',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
APPS=$(env DJANGO_SETTINGS_MODULE=petale.settings python -c 'from django.conf import settings; print(" ".join(p for p in (p.split(".")[-1] for p in settings.INSTALLED_APPS if not p.startswith("django.")) if p not in ["admin", "auth", "contenttypes"]))')
|
||||||
|
TEMPFILE=`mktemp`
|
||||||
|
trap "rm -f ${TEMPFILE} ${CHECK_MIGRATIONS_SETTINGS}" EXIT
|
||||||
|
|
||||||
|
PETALE_SETTINGS_FILE=${CHECK_MIGRATIONS_SETTINGS} ./manage.py makemigrations --dry-run --noinput ${APPS} >${TEMPFILE} 2>&1 || true
|
||||||
|
|
||||||
|
if ! grep 'No changes detected' -q ${TEMPFILE}; then
|
||||||
|
echo '!!! Missing migration detected !!!'
|
||||||
|
cat ${TEMPFILE}
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
14
tox.ini
14
tox.ini
|
@ -3,11 +3,13 @@ toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/petale/
|
||||||
envlist =
|
envlist =
|
||||||
py3-dj22-drf39
|
py3-dj22-drf39
|
||||||
code-style
|
code-style
|
||||||
|
check-migrations
|
||||||
|
|
||||||
[tox:jenkins]
|
[tox:jenkins]
|
||||||
envlist =
|
envlist =
|
||||||
pylint
|
pylint
|
||||||
code-style
|
code-style
|
||||||
|
check-migrations
|
||||||
py3-dj22-drf39
|
py3-dj22-drf39
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
|
@ -75,6 +77,18 @@ deps =
|
||||||
commands =
|
commands =
|
||||||
pre-commit run --all-files --show-diff-on-failure
|
pre-commit run --all-files --show-diff-on-failure
|
||||||
|
|
||||||
|
[testenv:check-migrations]
|
||||||
|
basepython = python3
|
||||||
|
usedevelop = True
|
||||||
|
setenv =
|
||||||
|
DJANGO_SETTINGS_MODULE=petale.settings
|
||||||
|
PETALE_SETTINGS_FILE=tests/settings.py
|
||||||
|
SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||||
|
deps =
|
||||||
|
psycopg2-binary
|
||||||
|
commands =
|
||||||
|
./check-migrations.sh
|
||||||
|
|
||||||
[pytest]
|
[pytest]
|
||||||
junit_family=xunit2
|
junit_family=xunit2
|
||||||
filterwarnings =
|
filterwarnings =
|
||||||
|
|
Loading…
Reference in New Issue