Skip to content

A notebook for EvaP #2188

A notebook for EvaP

A notebook for EvaP #2188

Workflow file for this run

name: EvaP Test Suite
on:
push:
branches:
- main
pull_request:
jobs:
test:
name: Test + Coverage
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: evap
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup python
uses: ./.github/setup_python
- name: Run tests
run: coverage run manage.py test
- name: Upload coverage
uses: codecov/codecov-action@v3
test_shuffled:
name: Test (shuffled order)
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: evap
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup python
uses: ./.github/setup_python
- name: Run tests
run: python manage.py test --shuffle
mypy:
runs-on: ubuntu-22.04
name: MyPy
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup python
uses: ./.github/setup_python
- name: Run MyPy
run: mypy -p evap
linter:
runs-on: ubuntu-22.04
name: Linter
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup python
uses: ./.github/setup_python
- name: Run linter
run: pylint evap -j 0
formatter:
runs-on: ubuntu-22.04
name: Formatting
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup python
uses: ./.github/setup_python
- name: Setup nodejs
uses: ./.github/setup_nodejs
- name: Check code formatting
run: black --check evap
- name: Check imports formatting
run: isort . --check --diff
- run: ls -laR evap/static/ts
- name: Check TypeScript formatting
run: npx prettier --list-different --loglevel debug 'evap/static/ts/**/*.ts'
backup-process:
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: evap
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
ports:
- 6379:6379
name: Backup process
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
submodules: true
- name: Setup python
uses: ./.github/setup_python
- name: Setup nodejs
uses: ./.github/setup_nodejs
- name: Install additional dependencies
run: sudo apt-get update && sudo apt-get install gettext
- name: GitHub actions has wrong file ownership here, the checkout actions has a problem here (see their 1049)
run: |
git config --global --add safe.directory '*'
sudo -H -u root git config --global --add safe.directory '*'
- name: Load test data
run: |
python manage.py migrate
python manage.py loaddata test_data
- name: Backup database
run: deployment/update_production.sh backup.json
env:
EVAP_OVERRIDE_BACKUP_FILENAME: true
EVAP_SKIP_CHECKOUT: true
- name: Reload backup
run: echo "yy" | deployment/load_production_backup.sh backup.json
compile_scss:
runs-on: ubuntu-22.04
name: Compile Scss
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
submodules: true
- name: Setup nodejs
uses: ./.github/setup_nodejs
- name: Compile Scss
run: npx sass evap/static/scss/evap.scss evap/static/css/evap.css
- name: Store Css
uses: actions/upload-artifact@v3
with:
name: css
path: evap/static/css/evap.css
render_pages:
runs-on: ubuntu-22.04
name: Render Html pages
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: evap
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
ports:
- 6379:6379
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup python
uses: ./.github/setup_python
- name: Render pages
run: coverage run manage.py ts render_pages
- name: Upload coverage
uses: codecov/codecov-action@v3
with:
flags: render-pages
- name: Store rendered pages
uses: actions/upload-artifact@v3
with:
name: rendered-pages
path: evap/static/ts/rendered
typescript:
runs-on: ubuntu-22.04
needs: [ compile_scss, render_pages ]
name: Test Typescript
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
submodules: true
- name: Setup nodejs
uses: ./.github/setup_nodejs
- name: Compile Typescript
run: npx tsc --project evap/static/ts/tsconfig.compile.json
- name: Load rendered pages
uses: actions/download-artifact@v3
with:
name: rendered-pages
path: evap/static/ts/rendered
- name: Load Css
uses: actions/download-artifact@v3
with:
name: css
path: evap/static/css
- name: Run tests
run: xvfb-run --auto-servernum npx jest