.gitlab-ci.yml 2.78 KB
Newer Older
1
2
services:
  - mysql:latest
David Haynes's avatar
David Haynes committed
3

4
types:
David Haynes's avatar
David Haynes committed
5
6
  - test-2.7
  - test-3.6
7

8
9
10
11
variables:
  MYSQL_DATABASE: go
  MYSQL_ROOT_PASSWORD: root

David Haynes's avatar
David Haynes committed
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
Go-py2.7:
  image: library/python:2.7
  type: test-2.7
  before_script:
    - python --version
    - apt-get update -qy
    - apt-get install -y libldap2-dev mysql-client libmysqlclient-dev python-mysqldb libjpeg-dev libsasl2-dev
    - pip install -r requirements.txt
    - cd go/
    - cp settings/settings.py.template settings/settings.py
    - cp settings/secret.py.template settings/secret.py
    - export SECRET_KEY=$(dd if=/dev/urandom count=100 | tr -dc "A-Za-z0-9" | fold -w 60 | head -n1 2>/dev/null)
    - export DJANGO_DEBUG="True"
    - sed -i settings/secret.py -e 's/DB_NAME.*/DB_NAME = \"go\"/'
    - sed -i settings/secret.py -e 's/DB_USER.*/DB_USER = \"root\"/'
    - sed -i settings/secret.py -e 's/DB_PASSWORD.*/DB_PASSWORD = \"root\"/'
    - sed -i settings/secret.py -e 's/DB_HOST.*/DB_HOST = \"mysql\"/'
    - sed -i settings/secret.py -e 's/SECRET_KEY.*/SECRET_KEY = \"${SECRET_KEY}\"/'
    - python manage.py makemigrations
    - python manage.py makemigrations go
    - python manage.py migrate
    - echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('root', 'root@srct.gmu.edu', 'root') " | python manage.py shell
  script:
    - pip install tblib
    - python manage.py test --parallel

Go-py3.6:
  image: library/python:3.6
  type: test-3.6
David Haynes's avatar
David Haynes committed
41
  before_script:
David Haynes's avatar
David Haynes committed
42
    - python --version
43
    - apt-get update -qy
44
    - apt-get install -y libldap2-dev mysql-client libmysqlclient-dev python-mysqldb libjpeg-dev libsasl2-dev
45
    - pip install -r requirements.txt
46
    - cd go/
David Haynes's avatar
David Haynes committed
47
48
    - cp settings/settings.py.template settings/settings.py
    - cp settings/secret.py.template settings/secret.py
49
50
    - export SECRET_KEY=$(dd if=/dev/urandom count=100 | tr -dc "A-Za-z0-9" | fold -w 60 | head -n1 2>/dev/null)
    - export DJANGO_DEBUG="True"
51
52
53
54
55
    - sed -i settings/secret.py -e 's/DB_NAME.*/DB_NAME = \"go\"/'
    - sed -i settings/secret.py -e 's/DB_USER.*/DB_USER = \"root\"/'
    - sed -i settings/secret.py -e 's/DB_PASSWORD.*/DB_PASSWORD = \"root\"/'
    - sed -i settings/secret.py -e 's/DB_HOST.*/DB_HOST = \"mysql\"/'
    - sed -i settings/secret.py -e 's/SECRET_KEY.*/SECRET_KEY = \"${SECRET_KEY}\"/'
56
57
58
    - python manage.py makemigrations
    - python manage.py makemigrations go
    - python manage.py migrate
59
    - echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('root', 'root@srct.gmu.edu', 'root') " | python manage.py shell
David Haynes's avatar
David Haynes committed
60
  script:
61
    - pip install coverage
62
    - pip install tblib
63
64
    - coverage run --source=go --omit=*migrations/* manage.py test --parallel
    - coverage html -i && grep pc_cov htmlcov/index.html | egrep -o "[0-9]+\%" | awk '{ print "covered " $1;}'