dist: xenial sudo: true cache: - directories: - $HOME/.cache/pip - client/node_modules matrix: include: - stage: "Dependencies" name: "Installing dependencies for python" language: python python: - "3.6" cache: pip: true install: - python --version - pip install --upgrade setuptools pip - pip install --upgrade --requirement requirements/development.txt - pip install --upgrade .[big_mode] - pip freeze script: skip - name: "Installing npm dependencies" language: node_js node_js: "10.13" cache: - directories: - "client/node_modules" before_install: - npm install -g @angular/cli@~8.0.6 - ng --version - cd client install: - npm install script: skip - stage: "Run tests" name: "Client: Testing" language: node_js node_js: "10.13" apt: sources: - google-chrome packages: - google-chrome-stable services: - xvfb install: - cd client - export CHROME_BIN=/usr/bin/google-chrome - export DISPLAY=:99.0 script: - npm run test-silently - name: "Client: Production Build (ES5)" language: node_js node_js: "10.13" install: - cd client - sed -i '/\"target\"/c\\"target\":\"es5\",' tsconfig.json script: - npm run build - name: "Client: Production Build (ES2015)" language: node_js node_js: "10.13" install: - cd client - echo "Firefox ESR" > browserslist script: - npm run build - name: "Client: Build" language: node_js node_js: "10.13" script: - cd client - npm run build-debug - name: "Server: Tests Python 3.6" language: python python: - "3.6" script: - mypy openslides/ tests/ - pytest --cov --cov-fail-under=75 - name: "Server: Tests Python 3.7" language: python python: - "3.7" script: - flake8 openslides tests - isort --check-only --diff --recursive openslides tests - black --check --diff --target-version py36 openslides tests - mypy openslides/ tests/ - pytest --cov --cov-fail-under=75 - name: "Server: Tests Python 3.8" language: python python: - "3.8" script: - flake8 openslides tests - isort --check-only --diff --recursive openslides tests - black --check --diff --target-version py36 openslides tests - mypy openslides/ tests/ - pytest --cov --cov-fail-under=75 - name: "Client: Linting" language: node_js node_js: "10.13" script: - cd client - npm run lint-check - name: "Client: Code Formatting Check" language: node_js node_js: "10.13" script: - cd client - npm list --depth=0 || cat --help - npm run prettify-check - name: "Server: Tests Startup Routine Python 3.7" language: python python: - "3.7" script: - set -e - python manage.py createsettings - python manage.py migrate - python manage.py runserver --noreload & (sleep 15 && kill $(ps aux | grep 'manage.py runserver' | head -n -1 | awk '{print $2}')) - set +e