58541aedd3
Uses Chrome Headless without sandboxing for running Angular karma tests add new "test-silently" command run tests in a more discrete way, Should enhance testspeed on servers and CI
126 lines
3.0 KiB
YAML
126 lines
3.0 KiB
YAML
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.9"
|
|
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.9"
|
|
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.9"
|
|
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.9"
|
|
install:
|
|
- cd client
|
|
- echo "Firefox ESR" > browserslist
|
|
script:
|
|
- npm run build
|
|
|
|
- name: "Client: Build"
|
|
language: node_js
|
|
node_js: "10.9"
|
|
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: "Client: Linting"
|
|
language: node_js
|
|
node_js: "10.9"
|
|
script:
|
|
- cd client
|
|
- npm run lint-check
|
|
|
|
- name: "Client: Code Formatting Check"
|
|
language: node_js
|
|
node_js: "10.9"
|
|
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
|