define deploy_dependencies ## deploy dependencies @-docker create --name ${db} \ -e POSTGRES_PASSWORD=password \ -p 5432:5432 \ postgres docker start ${db} endef define run_migrations ## run database migrations cd utils/db-migrations/ && unset DATABASE_URL && cargo build cd utils/db-migrations/ && cargo run endef #define cache_bust ## run cache_busting program # npm run sass # cd utils/cache-bust && cargo run #endef # default: ## Debug build # $(call cache_bust) cargo run -- serve # #cache-bust: ## Run cache buster on static assets # $(call cache_bust) check: ## Check for syntax errors on all workspaces cargo check --workspace --tests --all-features #cd utils/cache-bust && cargo check --tests --all-features clean: ## Clean all build artifacts and dependencies @cargo clean db.migrate: ## run migrations $(call run_migrations) db.sqlx.offline: ## prepare sqlx offline data cargo sqlx prepare \ --database-url=${DATABASE_URL} -- \ --all-features #dev-env: ## Download development dependencies # npm install # cargo fetch doc: ## Prepare documentation cargo doc --no-deps --workspace --all-features docker.build: ## Build docker images docker build \ -t libresolutions/vanigam:master \ -t libresolutions/vanigam:latest \ -t libresolutions/vanigam:0.1.0 . docker.publish: docker.build ## Build and publish docker images docker push libresolutions/vanigam:master docker push libresolutions/vanigam:latest docker push libresolutions/vanigam:0.1.0 env.db: ## Deploy dependencies $(call deploy_dependencies) sleep 5 $(call run_migrations) env.db.recreate: ## Deploy dependencies from scratch @-docker rm -f ${db} $(call deploy_dependencies) sleep 5 $(call run_migrations) lint: ## Lint codebase cargo fmt -v --all -- --emit files cargo clippy --workspace --tests --all-features #migrate: ## run migrations # $(call cache_bust) # unset DATABASE_URL && cargo build # DATABASE_URL=${DATABASE_URL} cargo run -- migrate release: ## Release build #$(call cache_bust) cargo build --release run: default ## Run debug build cargo run -- serve #sqlx-offline-data: ## prepare sqlx offline data # cargo sqlx prepare \ # --database-url=${DATABASE_URL} -- \ # --all-features test: ## Run tests #$(call cache_bust) cargo test --all-features --no-fail-fast #test.coverage.xml: ## Generate cobertura.xml test coverage # #$(call cache_bust) # cargo tarpaulin -t 1200 --out Xml # #test.coverage.html: ## Generate HTML code coverage # $(call cache_bust) # cargo tarpaulin -t 1200 --out Html # help: ## Prints help for targets with comments @cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-].*+:.*?## .*$$' | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'