Make EvaP pip-installable and publish to PyPI #3627
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: EvaP Test Suite | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
test: | |
name: Test + Coverage | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/setup_evap | |
with: | |
start-db: true | |
- name: Run tests | |
run: coverage run manage.py test | |
- name: Upload coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test_shuffled: | |
name: Test (shuffled order) | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/setup_evap | |
with: | |
start-db: true | |
- name: Run tests | |
run: python manage.py test --shuffle | |
mypy: | |
runs-on: ubuntu-22.04 | |
name: MyPy | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/setup_evap | |
- name: Run MyPy | |
run: mypy | |
linter: | |
runs-on: ubuntu-22.04 | |
name: Linter | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/setup_evap | |
- name: Run ruff | |
run: ruff check . | |
- name: Run pylint | |
run: pylint evap tools | |
formatter: | |
runs-on: ubuntu-22.04 | |
name: Formatting | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/setup_evap | |
with: | |
npm-ci: true | |
- name: Check code formatting | |
run: black --check . | |
- name: Check imports formatting | |
run: isort . --check --diff | |
- run: ls -laR evap/static/ts | |
- name: Check TypeScript formatting | |
run: npx prettier --list-different --log-level debug 'evap/static/ts/**/*.ts' | |
backup-process: | |
runs-on: ubuntu-22.04 | |
name: Backup process | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ./.github/setup_evap | |
with: | |
shell: .#evap # no dev-dependencies | |
start-db: true | |
- 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_UPDATE: 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: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ./.github/setup_evap | |
with: | |
npm-ci: true | |
- name: Compile Scss | |
run: npx sass evap/static/scss/evap.scss evap/static/css/evap.css | |
- name: Store Css | |
uses: actions/upload-artifact@v4 | |
with: | |
name: css | |
path: evap/static/css/evap.css | |
render_pages: | |
runs-on: ubuntu-22.04 | |
name: Render Html pages | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/setup_evap | |
with: | |
start-db: true | |
- name: Render pages | |
run: coverage run manage.py ts render_pages | |
- name: Upload coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
flags: render-pages | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Store rendered pages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rendered-pages | |
path: evap/static/ts/rendered | |
typescript: | |
runs-on: ubuntu-22.04 | |
needs: [ compile_scss, render_pages ] | |
name: Test Typescript | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ./.github/setup_evap | |
with: | |
npm-ci: true | |
- run: npx puppeteer browsers install chrome | |
- name: Compile Typescript | |
run: npx tsc --project evap/static/ts/tsconfig.compile.json | |
- name: Load rendered pages | |
uses: actions/download-artifact@v4 | |
with: | |
name: rendered-pages | |
path: evap/static/ts/rendered | |
- name: Load Css | |
uses: actions/download-artifact@v4 | |
with: | |
name: css | |
path: evap/static/css | |
- name: Run tests | |
run: xvfb-run --auto-servernum npx jest | |
macos-nix-build: | |
runs-on: macos-14 | |
name: Build nix environment on MacOS | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: ./.github/setup_evap | |
with: | |
start-db: true |