-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy path.travis.yml
92 lines (83 loc) · 4.01 KB
/
.travis.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
87
88
89
90
91
92
language: python
sudo: true
python:
- "3.6"
- "3.7"
- "3.8"
- "3.9"
- "3.10-dev"
- "nightly"
env:
global:
- ANYBLOK_DATABASE_NAME=travis_ci_test
- MARKERS=''
matrix:
- ANYBLOK_DATABASE_DRIVER=postgresql ANYBLOK_DATABASE_USER=postgres SQLSERVER='psql -c' SQLPYCLIENT='psycopg2'
- ANYBLOK_DATABASE_DRIVER=mysql ANYBLOK_DATABASE_USER=travis SQLSERVER='mysql -e' SQLPYCLIENT='mysqlclient'
- |-
ANYBLOK_DATABASE_HOST=localhost \
ANYBLOK_DATABASE_PORT=1433 \
ANYBLOK_DATABASE_DRIVER=mssql+pyodbc \
ANYBLOK_DATABASE_USER=sa \
ANYBLOK_DATABASE_PASSWORD=AnyBl@k2019 \
ANYBLOK_DATABASE_QUERY='driver=ODBC Driver 17 for SQL Server'\
SQLSERVER='docker exec mssql /opt/mssql-tools/bin/sqlcmd -U sa -P AnyBl@k2019 -Q' \
SQLPYCLIENT='pyodbc' \
MARKERS='field or column or relationship'
- |-
ANYBLOK_DATABASE_HOST=localhost \
ANYBLOK_DATABASE_PORT=1433 \
ANYBLOK_DATABASE_DRIVER=mssql+pyodbc \
ANYBLOK_DATABASE_USER=sa \
ANYBLOK_DATABASE_PASSWORD=AnyBl@k2019 \
ANYBLOK_DATABASE_QUERY='driver=ODBC Driver 17 for SQL Server'\
SQLSERVER='docker exec mssql /opt/mssql-tools/bin/sqlcmd -U sa -P AnyBl@k2019 -Q' \
SQLPYCLIENT='pyodbc' \
MARKERS='not field and not column and not relationship'
matrix:
allow_failures:
- python: "3.10-dev"
- python: "nightly"
- python: "pypy3"
include:
- python: "pypy3"
env: ANYBLOK_DATABASE_DRIVER=postgresql+psycopg2cffi ANYBLOK_DATABASE_USER=postgres SQLSERVER='psql -c' SQLPYCLIENT='psycopg2cffi'
fast_finish: true
virtualenv:
system_site_packages: false
services:
- postgresql
- mysql
- docker
before_install:
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/prod xenial main" | sudo tee -a /etc/apt/sources.list; fi
- sudo apt-get update
- sudo apt-get install graphviz
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then sudo ACCEPT_EULA=Y apt-get install msodbcsql17; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then sudo ACCEPT_EULA=Y apt-get install mssql-tools; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then source ~/.bashrc; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then sudo apt-get install unixodbc-dev; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then docker pull mcr.microsoft.com/mssql/server:2019-latest; fi
- if [[ $ANYBLOK_DATABASE_DRIVER == 'mssql+pyodbc' ]]; then docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=AnyBl@k2019' -p 1433:1433 -d --name mssql mcr.microsoft.com/mssql/server:2019-latest; fi
install:
- pip install -U pip
- pip install wheel
- pip install sqlalchemy
- pip install $SQLPYCLIENT
- pip install -U flake8 coverage pytest pytest-cov
- pip install colour passlib furl phonenumbers pycountry # special columns
- pip install -U cryptography
- pip install -U coveralls
- pip install .
script:
- flake8 anyblok --exclude=*/tests/*
- if [[ $TRAVIS_PYTHON_VERSION != 'pypy3' ]] && [[ $MARKERS == '' ]]; then pytest --cov=anyblok anyblok/tests; fi
- if [[ $TRAVIS_PYTHON_VERSION != 'pypy3' ]] && [[ $MARKERS != '' ]]; then pytest -m "$MARKERS" --cov=anyblok anyblok/tests; fi
- $SQLSERVER 'drop database travis_ci_test;'
- anyblok_createdb --install-all-bloks --with-demo
- anyblok_updatedb --update-all-bloks # some attribute is load twice in update
- pytest --cov-append --cov=anyblok anyblok/bloks/anyblok_core
after_success: coveralls