Replace travis with github actions

Remove travis, add github actions
This commit is contained in:
Sean 2020-11-18 15:04:17 +01:00
parent 38534d4e01
commit 5b2fe01965
2 changed files with 134 additions and 140 deletions

134
.github/workflows/run-tests.yml vendored Normal file
View File

@ -0,0 +1,134 @@
name: CI
on:
pull_request:
branches: [master]
jobs:
test-server:
runs-on: ubuntu-latest
env:
USING_COVERAGE: "3.6,3.8"
strategy:
matrix:
python-version: ["3.6", "3.7", "3.8"]
defaults:
run:
working-directory: ./server
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "${{ matrix.python-version }}"
- name: install python dependencies
run: |
pip install --upgrade pip
pip install --upgrade --requirement requirements.txt
pip freeze
- name: lint with flake8
run: flake8 openslides tests
- name: lint with isort
run: isort --check-only --diff --recursive openslides tests
- name: lint with black
run: black --check --diff openslides tests
- name: test using mypy
run: mypy openslides/ tests/
- name: test using pytest
run: pytest --cov --cov-fail-under=75
install-client-dependencies:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: node-module-cache
with:
path: |
**/node_modules
key: node_modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
node_modules-
- uses: actions/setup-node@v2-beta
with:
node-version: "12"
- name: install client dependencies
if: steps.node-module-cache.outputs.cache-hit != 'true'
run: npm ci
check-client-code:
needs: install-client-dependencies
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
**/node_modules
key: node_modules-${{ hashFiles('**/package-lock.json') }}
- name: check code using linter
run: npm run lint-check
- name: check code using prettify
run: npm run prettify-check
test-client:
needs: install-client-dependencies
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
**/node_modules
key: node_modules-${{ hashFiles('**/package-lock.json') }}
- name: test client
run: npm run test-silently
build-client-debug:
needs: install-client-dependencies
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
**/node_modules
key: node_modules-${{ hashFiles('**/package-lock.json') }}
- name: build client debug
run: npm run build-debug
build-client-prod:
needs: install-client-dependencies
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
**/node_modules
key: node_modules-${{ hashFiles('**/package-lock.json') }}
- name: build client prod
run: npm run build

View File

@ -1,140 +0,0 @@
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