dist: xenial os: linux cache: - directories: - $HOME/.cache/pip - client/node_modules jobs: include: - stage: "Dependencies" name: "Installing dependencies for python" language: python python: - "3.6" cache: pip: true before_install: - python --version - cd server install: - pip install --upgrade pip - pip install --upgrade --requirement requirements.txt - pip freeze script: skip - name: "Installing npm dependencies" language: node_js node_js: "12.18" 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: "12.18" 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: "12.18" 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: "12.18" install: - cd client - echo "Firefox ESR" > browserslist script: - npm run build - name: "Client: Build" language: node_js node_js: "12.18" script: - cd client - npm run build-debug - name: "Client: Linting" language: node_js node_js: "12.18" script: - cd client - npm run lint-check - name: "Client: Code Formatting Check" language: node_js node_js: "12.18" script: - cd client - npm run prettify-check - name: "Server: Tests Python 3.6" language: python python: - "3.6" before_install: - cd server script: - mypy openslides/ tests/ - pytest --cov --cov-fail-under=75 - name: "Server: Tests Python 3.7" language: python python: - "3.7" before_install: - cd server script: - flake8 openslides tests - isort --check-only --diff --recursive openslides tests - black --check --diff openslides tests - mypy openslides/ tests/ - pytest --cov --cov-fail-under=75 - name: "Server: Tests Python 3.8" language: python python: - "3.8" before_install: - cd server script: - flake8 openslides tests - isort --check-only --diff --recursive openslides tests - black --check --diff openslides tests - mypy openslides/ tests/ - pytest --cov --cov-fail-under=75 - name: "Server: Tests Startup Routine Python 3.7" language: python python: - "3.7" before_install: - cd server script: - set -e - python manage.py createsettings - python manage.py migrate - python manage.py runserver --noreload & (sleep 20 && kill $(ps aux | grep 'manage.py runserver' | head -n -1 | awk '{print $2}')) - set +e