dist: xenial services: - mysql - postgresql language: python python: - 3.6 - 3.7 addons: apt-packages: - sqlite3 before_install: - sudo apt-get update - sudo apt-get install gettext - sudo apt-get install mysql-server libmysqlclient-dev - sudo apt-get install libpq-dev - pip3 install invoke - pip3 install mysqlclient - pip3 install psycopg2 - invoke install - invoke migrate - cd InvenTree && python3 manage.py createsuperuser --username InvenTreeAdmin --email admin@inventree.com --noinput && cd .. - psql -c 'create database inventree_test_db;' -U postgres - mysql -e 'CREATE DATABASE inventree_test_db;' script: - cd InvenTree && python3 manage.py makemigrations && cd .. - python3 ci/check_migration_files.py # Run unit testing / code coverage tests - invoke coverage # Run unit test for SQL database backend - cd InvenTree && python3 manage.py test --settings=InvenTree.ci_mysql && cd .. # Run unit test for PostgreSQL database backend - cd InvenTree && python3 manage.py test --settings=InvenTree.ci_postgresql && cd .. - invoke translate - invoke style # Create an empty database and fill it with test data - rm inventree_default_db.sqlite3 - invoke migrate - invoke import-fixtures # Export database records - invoke export-records -f data.json # Create a new empty database and import the saved data - rm inventree_default_db.sqlite3 - invoke migrate - invoke import-records -f data.json # Run linting checks on migration files (django-migration-linter) # Run subset of linting checks on *ALL* migration files # Run strict migration file checks on *NEW* migrations (old ones are what they are) - cd InvenTree && python manage.py lintmigrations 79ddea50f507e34195bad635008419daac0d7a5f -q ok ignore --no-cache && cd .. after_success: - coveralls