language: python python: - '3.5' cache: npm: true directories: - ~/.cache addons: firefox: 'latest' chrome: stable 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: - chmod a+rwx ${HOST_COVERAGE_DATA_DIR} script: - if [[ $TRAVIS_EVENT_TYPE == "cron" && $TRAVIS_BRANCH == "develop" ]]; then docker-compose -f docker-compose.yml -f ./tests/docker-compose.email.yml up -d --build; docker exec -it cvat bash -ic 'python3 ~/manage.py migrate'; 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"; cd ./tests && npm install && npm run cypress:run:firefox; exit $?; fi; - docker-compose -f docker-compose.yml -f docker-compose.ci.yml build - 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 utils/cli && 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 && mv ./reports/coverage/lcov.info ${CONTAINER_COVERAGE_DATA_DIR} && chmod a+rwx ${CONTAINER_COVERAGE_DATA_DIR}/lcov.info' - docker-compose up -d - 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" # End-to-end testing - npm install && npm run coverage - docker-compose up -d --build - cd ./tests && npm install && npx cypress run --headless --browser chrome - mv ./.nyc_output ../ && cd .. - npx nyc report --reporter=text-lcov >> ${HOST_COVERAGE_DATA_DIR}/lcov.info - docker-compose -f docker-compose.yml -f docker-compose.ci.yml run cvat_ci /bin/bash -c 'cd ${CONTAINER_COVERAGE_DATA_DIR} && coveralls-lcov -v -n lcov.info > ${CONTAINER_COVERAGE_DATA_DIR}/coverage.json' 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'