You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.7 KiB
YAML
59 lines
2.7 KiB
YAML
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'
|