This repository has been archived by the owner on Jan 25, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 48
/
jenkins.sh
executable file
·69 lines (55 loc) · 1.64 KB
/
jenkins.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh
# This script makes sure that Jenkins can properly run your tests against your
# codebase.
set -e
DB_HOST="localhost"
DB_USER="hudson"
cd $WORKSPACE
VENV=$WORKSPACE/venv
echo "Starting build on executor $EXECUTOR_NUMBER..."
# Make sure there's no old pyc files around.
find . -name '*.pyc' -exec rm {} \;
if [ ! -d "$VENV/bin" ]; then
echo "No virtualenv found. Making one..."
virtualenv $VENV --no-site-packages
source $VENV/bin/activate
pip install --upgrade pip
pip install coverage
fi
git submodule sync -q
git submodule update --init --recursive
if [ ! -d "$WORKSPACE/vendor" ]; then
echo "No /vendor... crap."
exit 1
fi
source $VENV/bin/activate
pip install -q -r requirements/compiled.txt
pip install -q -r requirements/dev.txt
cat > settings/local.py <<SETTINGS
from settings.base import *
ROOT_URLCONF = 'workspace.urls'
LOG_LEVEL = logging.ERROR
# Database name has to be set because of sphinx
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '${DB_HOST}',
'NAME': '${JOB_NAME}',
'USER': 'hudson',
'PASSWORD': '',
'OPTIONS': {'init_command': 'SET storage_engine=InnoDB'},
'TEST_NAME': 'test_${JOB_NAME}',
'TEST_CHARSET': 'utf8',
'TEST_COLLATION': 'utf8_general_ci',
}
}
INSTALLED_APPS += ('django_nose',)
CELERY_ALWAYS_EAGER = True
SETTINGS
echo "Creating database if we need it..."
echo "CREATE DATABASE IF NOT EXISTS ${JOB_NAME}"|mysql -u $DB_USER -h $DB_HOST
echo "Starting tests..."
export FORCE_DB=1
coverage run manage.py test --noinput --with-xunit --with-blockage
coverage xml $(find apps lib -name '*.py')
echo "FIN"