version: '3' env: BE_BASE_PATH: "/{{ .TASKFILE_DIR }}/backend" VENV_PATH: "{{ .BE_BASE_PATH }}/.venv" VENV_BIN: "{{ .VENV_PATH }}/bin" VENV_ACTIVATE: "{{ .VENV_BIN }}/activate" DOTENV: "{{ .BE_BASE_PATH }}/.env" APP_CONTAINER_NAME: "rotini_app" tasks: bootstrap: internal: true cmds: - . script/bootstrap sources: - "{{ .BE_BASE_PATH }}/*.in" generates: - "{{ .VENV_PATH }}/*" dir: backend lint: desc: "Lints /backend using black + pylint." deps: [bootstrap] cmds: - "{{ .VENV_BIN }}/black . --check" - "{{ .VENV_BIN }}/pylint ./rotini" dir: backend lintfix: desc: "Lints and fixes /backend using black + pylint." deps: [bootstrap] cmds: - "{{ .VENV_BIN }}/black ." - "{{ .VENV_BIN }}/pylint ./rotini" dir: backend test: desc: "Run the test suites." deps: [bootstrap] cmd: . script/test dir: backend start: desc: "Starts the backend application." deps: [docker-build] cmd: docker run -d -p 8000:8000 --name {{ .APP_CONTAINER_NAME }} {{ .CLI_ARGS }} --add-host docker.host.internal:host-gateway rotini:dev dir: backend/rotini stop: desc: "Stops the backend application." cmd: docker rm -f {{ .APP_CONTAINER_NAME }} logs: desc: "Shortcut to Docker container logs" cmd: docker logs {{ .APP_CONTAINER_NAME }} -f start-db: desc: "Provisions a local Postgres database." dotenv: - "{{ .DOTENV }}" cmd: . script/provision-db dir: backend migrate: desc: "Applies migrations. Usage: be:migrate -- " deps: [bootstrap] env: PYTHONPATH: '..' ROTINI_MIGRATE: 1 dotenv: - "{{ .DOTENV }}" cmd: "{{ .VENV_BIN }}/python migrate.py {{ .CLI_ARGS }}" dir: backend/rotini/migrations lock-deps: desc: "Locks production and development dependencies" deps: [bootstrap] cmd: . script/requirements-lock dir: backend docker-build: desc: "Builds a docker image from /backend" cmd: docker build --build-arg PYTHON_VERSION=$(cat .python-version) -t rotini:dev . dir: backend