sudo: required language: python python: - "3.5" cache: npm: true directories: - ~/.cache addons: firefox: "latest" apt: packages: - libgconf-2-4 services: - docker env: - CONTAINER_COVERAGE_DATA_DIR="/coverage_data" HOST_COVERAGE_DATA_DIR="${TRAVIS_BUILD_DIR}" DJANGO_SU_NAME="admin" DJANGO_SU_EMAIL="admin@localhost.company" DJANGO_SU_PASSWORD="12qwaszx" NODE_VERSION="12" before_install: - nvm install ${NODE_VERSION} before_script: - docker-compose -f docker-compose.yml -f docker-compose.ci.yml build - chmod a+rwx ${HOST_COVERAGE_DATA_DIR} script: # FIXME: Git package and application name conflict in PATH and try to leave only one python test execution - docker-compose -f docker-compose.yml -f docker-compose.ci.yml run cvat_ci /bin/bash -c 'coverage run -a manage.py test cvat/apps && coverage run -a manage.py test --pattern="_test*.py" cvat/apps/dataset_manager/tests cvat/apps/engine/tests utils/cli && coverage run -a manage.py test datumaro/ && mv .coverage ${CONTAINER_COVERAGE_DATA_DIR}' - docker-compose -f docker-compose.yml -f docker-compose.ci.yml run cvat_ci /bin/bash -c 'cd cvat-data && npm install && cd ../cvat-core && npm install && npm run test && coveralls-lcov -v -n ./reports/coverage/lcov.info > ${CONTAINER_COVERAGE_DATA_DIR}/coverage.json' # Up all containers - docker-compose up -d # Create superuser - docker exec -it cvat bash -ic "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell" # Install Cypress and run tests - cd ./tests && npm install - $(npm bin)/cypress run --headless --browser chrome - $(npm bin)/cypress run --headless --browser firefox && cd .. after_success: # https://coveralls-python.readthedocs.io/en/latest/usage/multilang.html - docker-compose -f docker-compose.yml -f docker-compose.ci.yml run cvat_ci /bin/bash -c 'ln -s ${CONTAINER_COVERAGE_DATA_DIR}/.git . && ln -s ${CONTAINER_COVERAGE_DATA_DIR}/.coverage . && ln -s ${CONTAINER_COVERAGE_DATA_DIR}/coverage.json . && coveralls --merge=coverage.json'