2017-12-25 21:17:47 +01:00
i n c l u d e M a k e f i l e . c o n f i g
2020-09-19 13:56:14 +02:00
- i n c l u d e . e n v
2017-12-25 21:17:47 +01:00
.SILENT :
make-p :
# Launch all P targets in parallel and exit as soon as one exits.
set -m; ( for p in $( P) ; do ( $( MAKE) $$ p || kill 0) & done ; wait )
2022-07-02 19:25:07 +02:00
babel-extract :
$( PYBABEL) extract -F babel.cfg -k lazy_gettext -o messages.pot .
babel-init :
$( PYBABEL) init -i messages.pot -d fittrackee/emails/translations -l $( LANG)
babel-compile :
$( PYBABEL) compile -d fittrackee/emails/translations
babel-update :
$( PYBABEL) update -i messages.pot -d fittrackee/emails/translations
2022-05-28 20:01:14 +02:00
bandit :
$( BANDIT) -r fittrackee -c pyproject.toml
2020-09-16 16:00:25 +02:00
build-client : lint -client
cd fittrackee_client && $( NPM) build
2018-06-20 15:27:52 +02:00
2022-05-29 09:27:41 +02:00
check-all : bandit lint -all type -check test -all
2022-03-27 09:48:36 +02:00
check-client : lint -client test -client
2021-01-02 19:28:03 +01:00
2022-05-28 20:01:14 +02:00
check-python : bandit lint -python type -check test -python
2021-12-01 19:22:47 +01:00
2021-01-20 17:17:22 +01:00
clean :
rm -rf .mypy_cache
rm -rf .pytest_cache
2022-02-05 12:45:08 +01:00
rm -rf e2e/.pytest_cache
2021-01-20 17:17:22 +01:00
clean-install : clean
2018-04-09 22:09:58 +02:00
rm -fr $( NODE_MODULES)
rm -fr $( VENV)
2020-09-19 13:56:14 +02:00
rm -rf *.egg-info
rm -rf dist/
2018-04-09 22:09:58 +02:00
2021-01-31 11:30:37 +01:00
## Docker commands for evaluation purposes
2022-10-26 01:38:55 +02:00
docker-bandit :
docker-compose -f docker-compose-dev.yml exec fittrackee $( DOCKER_BANDIT) -r fittrackee -c pyproject.toml
2021-01-31 11:30:37 +01:00
docker-build :
2021-10-16 19:22:23 +02:00
docker-compose -f docker-compose-dev.yml build fittrackee
docker-build-all : docker -build docker -build -client
docker-build-client :
docker-compose -f docker-compose-dev.yml build fittrackee_client
2021-01-31 11:30:37 +01:00
2022-10-26 01:38:55 +02:00
docker-check-all : docker -bandit docker -lint -all docker -type -check docker -test -client docker -test -python
2023-03-14 05:51:05 +01:00
docker-downgrade-db :
docker-compose -f docker-compose-dev.yml exec fittrackee $( DOCKER_FLASK) db downgrade --directory $( DOCKER_MIGRATIONS)
2022-07-23 11:30:10 +02:00
docker-init : docker -run docker -init -db docker -restart docker -run -workers
2021-01-31 11:30:37 +01:00
docker-init-db :
docker-compose -f docker-compose-dev.yml exec fittrackee docker/init-database.sh
2022-10-26 01:38:55 +02:00
docker-lint-all : docker -lint -client docker -lint -python
2022-07-20 10:08:01 +02:00
docker-lint-client :
docker-compose -f docker-compose-dev.yml up -d fittrackee_client
docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn lint
docker-lint-python : docker -run
docker-compose -f docker-compose-dev.yml exec fittrackee docker/lint-python.sh
2021-01-31 11:30:37 +01:00
docker-logs :
docker-compose -f docker-compose-dev.yml logs --follow
2022-10-25 23:27:05 +02:00
docker-migrate-db :
docker-compose -f docker-compose-dev.yml exec fittrackee $( DOCKER_FLASK) db migrate --directory $( DOCKER_MIGRATIONS)
2021-01-31 11:30:37 +01:00
docker-rebuild :
docker-compose -f docker-compose-dev.yml build --no-cache
docker-restart :
docker-compose -f docker-compose-dev.yml restart fittrackee
2023-02-16 10:24:32 +01:00
docker-compose -f docker-compose-dev.yml exec -d fittrackee docker/run-workers.sh
2021-01-31 11:30:37 +01:00
2022-10-25 23:27:05 +02:00
docker-revision :
docker-compose -f docker-compose-dev.yml exec fittrackee $( DOCKER_FLASK) db revision --directory $( DOCKER_MIGRATIONS) --message $( MIGRATION_MESSAGE)
2021-01-31 11:30:37 +01:00
docker-run-all : docker -run docker -run -workers
docker-run :
2021-10-16 19:22:23 +02:00
docker-compose -f docker-compose-dev.yml up -d fittrackee
2021-01-31 11:30:37 +01:00
docker-run-workers :
docker-compose -f docker-compose-dev.yml exec -d fittrackee docker/run-workers.sh
2021-10-16 19:22:23 +02:00
docker-serve-client :
2021-10-18 17:28:48 +02:00
docker-compose -f docker-compose-dev.yml up -d fittrackee_client
2021-11-06 22:18:38 +01:00
docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn serve
2021-10-16 19:22:23 +02:00
2022-02-13 09:45:51 +01:00
docker-set-admin :
docker-compose -f docker-compose-dev.yml exec fittrackee docker/set-admin.sh $( USERNAME)
2021-01-31 11:30:37 +01:00
docker-shell :
docker-compose -f docker-compose-dev.yml exec fittrackee docker/shell.sh
docker-stop :
docker-compose -f docker-compose-dev.yml stop
2022-07-20 10:08:01 +02:00
docker-test-client :
docker-compose -f docker-compose-dev.yml up -d fittrackee_client
docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn test:unit
# needs a running application
docker-test-e2e : docker -run
docker-compose -f docker-compose-dev.yml up -d selenium
docker-compose -f docker-compose-dev.yml exec fittrackee docker/test-e2e.sh $( PYTEST_ARGS)
docker-test-python : docker -run
docker-compose -f docker-compose-dev.yml exec fittrackee docker/test-python.sh $( PYTEST_ARGS)
2022-10-26 01:38:55 +02:00
docker-type-check :
echo 'Running mypy in docker...'
docker-compose -f docker-compose-dev.yml exec fittrackee $( DOCKER_MYPY) fittrackee
2021-01-31 11:30:37 +01:00
docker-up :
2022-06-05 11:08:53 +02:00
docker-compose -f docker-compose-dev.yml up fittrackee
2021-01-31 11:30:37 +01:00
2022-10-25 23:27:05 +02:00
docker-upgrade-db :
docker-compose -f docker-compose-dev.yml exec fittrackee $( DOCKER_FTCLI) db upgrade
2021-01-10 11:16:43 +01:00
downgrade-db :
$( FLASK) db downgrade --directory $( MIGRATIONS)
2019-07-14 14:47:07 +02:00
html :
2019-07-14 19:42:40 +02:00
rm -rf docsrc/build
2019-07-20 13:18:39 +02:00
rm -rf docs/*
touch docs/.nojekyll
2019-07-14 19:42:40 +02:00
$( SPHINXBUILD) -M html " $( SOURCEDIR) " " $( BUILDDIR) " $( SPHINXOPTS) $( O)
2019-07-21 10:30:37 +02:00
rm -rf docsrc/build/html/_static/bootstrap-2.3.2
rm -rf docsrc/build/html/_static/bootswatch-2.3.2
2021-10-17 09:28:56 +02:00
find docsrc/build/html/_static/bootswatch-3.4.1/. -maxdepth 1 -not -name flatly -not -name fonts -exec rm -rf '{}' \; 2>/tmp/NULL
sed -i "s/\@import url(\"https:\/\/fonts.googleapis.com\/css?family=Lato:400,700,400italic\");//" docsrc/build/html/_static/bootswatch-3.4.1/flatly/bootstrap.min.css
2019-07-14 19:42:40 +02:00
cp -a docsrc/build/html/. docs
2019-07-14 14:47:07 +02:00
2018-09-09 10:48:32 +02:00
install-db :
2020-09-16 15:41:02 +02:00
psql -U postgres -f db/create.sql
2022-04-23 11:21:14 +02:00
$( FTCLI) db upgrade
2019-11-13 18:40:01 +01:00
2018-01-07 11:44:56 +01:00
init-db :
2022-04-23 11:21:14 +02:00
$( FTCLI) db drop
$( FTCLI) db upgrade
2018-01-07 11:44:56 +01:00
install : install -client install -python
install-client :
2022-05-18 09:49:46 +02:00
# NPM_ARGS="--ignore-engines", if errors with Node latest version
cd fittrackee_client && $( NPM) install --prod $( NPM_ARGS)
2018-06-20 13:23:47 +02:00
install-client-dev :
2022-05-18 09:49:46 +02:00
# NPM_ARGS="--ignore-engines", if errors with Node latest version
cd fittrackee_client && $( NPM) install $( NPM_ARGS)
2018-01-07 11:44:56 +01:00
2018-06-20 13:23:47 +02:00
install-dev : install -client -dev install -python -dev
2019-08-28 11:48:30 +02:00
install-python :
$( POETRY) install --no-dev
2018-06-20 13:23:47 +02:00
2019-08-28 11:48:30 +02:00
install-python-dev :
$( POETRY) install
2018-01-07 11:44:56 +01:00
2020-09-16 16:00:25 +02:00
lint-all : lint -python lint -client
2018-01-14 20:49:35 +01:00
2020-09-16 16:00:25 +02:00
lint-all-fix : lint -python -fix lint -client -fix
2019-08-28 15:33:50 +02:00
2020-09-16 16:00:25 +02:00
lint-client :
cd fittrackee_client && $( NPM) lint
2018-01-14 20:49:35 +01:00
2020-09-16 16:00:25 +02:00
lint-client-fix :
cd fittrackee_client && $( NPM) lint-fix
2019-08-28 15:33:50 +02:00
2021-01-02 19:28:03 +01:00
lint-python :
2023-06-14 20:58:47 +02:00
$( PYTEST) --isort --black -m "isort or black" fittrackee e2e --ignore= fittrackee/migrations
echo 'Running flake8...'
$( FLAKE8) fittrackee e2e
2021-01-02 19:28:03 +01:00
lint-python-fix :
$( BLACK) fittrackee e2e
2020-05-17 18:20:15 +02:00
mail :
docker run -d -e "MH_STORAGE=maildir" -v /tmp/maildir:/maildir -p 1025:1025 -p 8025:8025 mailhog/mailhog
2018-01-20 19:12:34 +01:00
migrate-db :
2018-01-21 17:43:13 +01:00
$( FLASK) db migrate --directory $( MIGRATIONS)
2018-01-20 19:12:34 +01:00
2021-09-01 14:05:45 +02:00
revision :
$( FLASK) db revision --directory $( MIGRATIONS) --message $( MIGRATION_MESSAGE)
2018-06-20 15:27:52 +02:00
run :
2020-09-16 13:48:15 +02:00
$( MAKE) P = "run-server run-workers" make-p
2018-06-20 15:27:52 +02:00
run-server :
2021-01-20 17:17:22 +01:00
echo 'Running on http://$(HOST):$(PORT)'
cd fittrackee && $( GUNICORN) -b $( HOST) :$( PORT) "fittrackee:create_app()" --error-logfile ../gunicorn.log
2018-06-20 15:27:52 +02:00
2020-07-14 22:03:56 +02:00
run-workers :
2020-07-15 15:30:41 +02:00
$( FLASK) worker --processes= $( WORKERS_PROCESSES) >> dramatiq.log 2>& 1
2020-07-14 22:03:56 +02:00
2021-01-02 19:28:03 +01:00
serve :
2022-11-27 12:06:42 +01:00
# for dev environments
2021-01-02 19:28:03 +01:00
$( MAKE) P = "serve-client serve-python" make-p
2017-12-25 21:17:47 +01:00
2021-01-02 19:28:03 +01:00
serve-dev :
2022-11-27 12:06:42 +01:00
# for dev environments
2021-01-02 19:28:03 +01:00
$( MAKE) P = "serve-client serve-python-dev" make-p
2019-11-13 12:57:36 +01:00
2020-09-16 16:00:25 +02:00
serve-client :
2022-11-27 12:06:42 +01:00
# for dev environments
2021-10-31 19:03:14 +01:00
cd fittrackee_client && PORT = 3000 $( NPM) serve
2017-12-25 21:17:47 +01:00
2021-01-02 19:28:03 +01:00
serve-python :
2022-11-27 12:06:42 +01:00
# for dev environments
2021-06-26 22:18:08 +02:00
echo 'Running on http://$(HOST):$(PORT)'
2021-01-02 19:28:03 +01:00
$( FLASK) run --with-threads -h $( HOST) -p $( PORT)
2018-01-01 11:10:39 +01:00
2021-01-02 19:28:03 +01:00
serve-python-dev :
2022-11-27 12:06:42 +01:00
# for dev environments (
2021-06-26 22:18:08 +02:00
echo 'Running on https://$(HOST):$(PORT)'
2021-01-02 19:28:03 +01:00
$( FLASK) run --with-threads -h $( HOST) -p $( PORT) --cert= adhoc
2019-11-13 12:57:36 +01:00
2022-02-12 14:30:59 +01:00
set-admin :
2022-04-23 14:08:51 +02:00
echo "Deprecated command, will be removed in a next version. Use 'user-set-admin' instead."
2022-04-23 13:48:29 +02:00
$( FTCLI) users update $( USERNAME) --set-admin true
2022-02-12 14:30:59 +01:00
2022-07-20 10:08:01 +02:00
test-all : test -client test -python
2022-03-23 09:36:23 +01:00
test-e2e :
2020-09-16 15:41:02 +02:00
$( PYTEST) e2e --driver firefox $( PYTEST_ARGS)
2020-09-13 21:39:44 +02:00
2022-03-23 09:36:23 +01:00
test-e2e-client :
2020-09-13 21:39:44 +02:00
E2E_ARGS = client $( PYTEST) e2e --driver firefox $( PYTEST_ARGS)
2018-01-07 11:44:56 +01:00
2018-01-01 11:10:39 +01:00
test-python :
2022-11-19 20:17:58 +01:00
# for tests parallelization: 4 workers max.
# make test-python PYTEST_ARGS="-p no:warnings -n auto --maxprocesses=4"
2020-09-16 15:41:02 +02:00
$( PYTEST) fittrackee --cov-config .coveragerc --cov= fittrackee --cov-report term-missing $( PYTEST_ARGS)
2018-01-20 19:12:34 +01:00
2021-09-04 19:24:39 +02:00
test-client :
2022-11-16 11:01:31 +01:00
cd fittrackee_client && $( NPM) test:unit $( MOCHA_ARGS)
2021-09-04 19:24:39 +02:00
2021-01-02 19:28:03 +01:00
type-check :
echo 'Running mypy...'
2021-01-31 18:40:20 +01:00
$( MYPY) fittrackee
2021-01-02 19:28:03 +01:00
2018-01-20 19:12:34 +01:00
upgrade-db :
2022-04-23 11:21:14 +02:00
$( FTCLI) db upgrade
2022-04-23 14:08:51 +02:00
user-activate :
$( FTCLI) users update $( USERNAME) --activate
user-reset-password :
$( FTCLI) users update $( USERNAME) --reset-password
ADMIN := true
user-set-admin :
$( FTCLI) users update $( USERNAME) --set-admin $( ADMIN)
user-update-email :
$( FTCLI) users update $( USERNAME) --update-email $( EMAIL)