forked from DennisNemec/school-nn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
86 lines (77 loc) · 2.29 KB
/
.gitlab-ci.yml
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
stages:
- test
- deploy
mypy-typing-check:
stage: test
tags:
- mypy
script:
- python3 -m mypy . --ignore-missing-imports
bandit-security-check:
stage: test
tags:
- bandit
script:
- python3 -m bandit -r . --config .bandit.yaml
black-style-check:
stage: test
tags:
- black
script:
- python3 -m black . --line-length 79 --check
flake8-style-check:
stage: test
tags:
- flake8
script:
- python3 -m flake8 . --exclude "schoolnn/migrations/*"
pytest-tests:
image: python:3.8-buster
stage: test
variables:
WORKON_HOME: .pipenv/venvs
PIP_CACHE_DIR: .pipenv/pipcache
SECRET_KEY: CHANGE_ME_IN_PRODUCTION
cache:
key: pipenv
paths:
- .pipenv
tags:
- pytest
- tensorflow
before_script:
- apt update && apt install -y libgl1-mesa-glx gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libcairo-gobject2 libxinerama1 libgtk2.0-0 libpangoft2-1.0-0 libthai0 libpixman-1-0 libxcb-render0 libharfbuzz0b libdatrie1 libgraphite2-3 libgbm1
- pip install pipenv
- pipenv install --dev
script:
- pipenv run python3 -m coverage run -m pytest tests -v
- pipenv run python3 -m coverage combine # merge multiprocessing data
- pipenv run python3 -m coverage xml
- pipenv run python3 -m coverage report
- pipenv run python3 -m coverage html
artifacts:
paths:
- htmlcov
reports:
cobertura: coverage.xml
coverage: '/^TOTAL.+?(\d+\%)$/'
migrations-check:
image: python:3.8-buster
stage: test
variables:
WORKON_HOME: .pipenv/venvs
PIP_CACHE_DIR: .pipenv/pipcache
SECRET_KEY: CHANGE_ME_IN_PRODUCTION
cache:
key: pipenv
paths:
- .pipenv
tags:
- pytest
- tensorflow
before_script:
- apt update && apt install -y libgl1-mesa-glx
- pip install pipenv
- pipenv install --dev
script:
- pipenv run python3 manage.py makemigrations schoolnn --check