2bcab5d098
- moved all server related things into the folder `server`, so this configuration is parallel to the client. - All main "services" are now folders in the root directory - Added Dockerfiles to each service (currently server and client) - Added a docker compose configuration to start everything together. Currently there are heavy dependencies into https://github.com/OpenSlides/openslides-docker-compose - Resturctured the .gitignore. If someone needs something excluded, please add it to the right section. - Added initial build setup with Docker and docker-compose. - removed setup.py. We won't deliver OpenSlides via pip anymore.
141 lines
3.4 KiB
YAML
141 lines
3.4 KiB
YAML
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 --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"
|
|
before_install:
|
|
- cd server
|
|
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 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
|