Replace travis with github actions
Remove travis, add github actions
This commit is contained in:
parent
38534d4e01
commit
5b2fe01965
134
.github/workflows/run-tests.yml
vendored
Normal file
134
.github/workflows/run-tests.yml
vendored
Normal 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
|
140
.travis.yml
140
.travis.yml
@ -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
|
Loading…
Reference in New Issue
Block a user