.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;}'