Plattform für die Solawi-Apps.
https://solawi.me/
|
||
---|---|---|
_email | ||
.ci | ||
.idea | ||
3rdparty | ||
deploy | ||
documentation@dd0137468c | ||
keys | ||
solawi_apps | ||
solawi_platform | ||
solawi_uat | ||
SystemTest | ||
.gitignore | ||
.gitmodules | ||
CHANGES.md | ||
Demo-Daten Anteilsimport mit BOM.csv | ||
Demo-Daten Anteilsimport.csv | ||
health-check.http | ||
http-client.env.json | ||
LICENSE.txt | ||
manage.py | ||
poetry.lock | ||
poetry.toml | ||
pyproject.toml | ||
README.md |
Solawi Suite Platform
Development Key
DO NOT USE IN PRODUCTION!
0x3739d20117be06f317d31bf30296b563e37a1a5ef6299a0e920675288f920627
Use as environment variable during development:
SOLAWI_SUITE_SECRET_KEY=0x3739d20117be06f317d31bf30296b563e37a1a5ef6299a0e920675288f920627
Deployment steps
git submodule update
git submodule foreach --recursive git clean -id
poetry install --without dev
poetry run manage.py migrate
(cd 3rdparty; yarn install)
(cd documentation; poetry run mkdocs build)
poetry run manage.py collectstatic
supervisorctl restart solawi_suite
Important Cron Jobs
MAILTO="administrator@solawi-system"
DJANGO_SETTINGS_MODULE="solawi_platform.production_settings"
SOLAWI_SUITE_SECRET_KEY=file:///path/to/secret_key.hex
PATH=/usr/local/bin
SOLAWI_SUITE_HOME=/path/to/solawi-suite/platform
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
# * * * * * command --arg1 --arg2 file1 file2 2>&1
11 4 * * * (cd $SOLAWI_SUITE_HOME; poetry run manage.py cleanup_burned_otp)
*/7 * * * * (cd $SOLAWI_SUITE_HOME; poetry run manage.py cleanup_forgot_password)
*/9 * * * * (cd $SOLAWI_SUITE_HOME; poetry run manage.py cleanup_pending_registrations)
*/13 * * * * (cd $SOLAWI_SUITE_HOME; poetry run manage.py cleanup_rate_limiter)
33 3 * * * (cd $SOLAWI_SUITE_HOME; poetry run manage.py clearsessions)
Testing
Installation
poetry install --without prod
poetry run rfbrowser init
(cd 3rdparty; yarn install)
(cd documentation; poetry run mkdocs build)
poetry run manage.py collectstatic
Unit Tests
poetry run manage.py test
System Test
poetry run robot -A SystemTest/robot.args.conf SystemTest/TestCases
yarn dlx allure-commandline generate uat-test-results/allure
# or
yarn dlx allure-commandline serve uat-test-results/allure
System Test (parallel)
poetry run pabot --processes 4 --command robot -A SystemTest/robot.args.conf --end-command --output-dir uat-test-results --xunit xunit.xml SystemTest/TestCases
yarn dlx allure-commandline generate uat-test-results/allure
# or
yarn dlx allure-commandline serve uat-test-results/allure
Load Test
TODO: locust