# 伪目标
.PHONY: dev pro build clean upload publish

# 运行开发环境
dev:
	source venv/bin/activate && gunicorn --bind '0.0.0.0:5001' --timeout 120  --reload 'domain_admin.main:app'

# 运行生产环境
pro:
	source venv/bin/activate &&  gunicorn --bind '0.0.0.0:5001' --timeout 120 'domain_admin.main:app'

# 发布 make release
.PHONY: release
release:
	python ./version-cli/auto_release.py

# 打包
build:
	python setup.py sdist bdist_wheel --python-tag py2.py3

# 制作 docker 镜像
.PHONY: docker-build
docker-build:
	docker build -t mouday/domain-admin:latest -f Dockerfile .

# 构建并运行 docker 镜像
.PHONY: docker-run
docker-run:
	docker run -p 8000:8000 mouday/domain-admin:latest

# 构建并运行 docker 镜像
.PHONY: docker-build-run
docker-build-run:
	make docker-build
	make docker-run

# 清空打包产物
clean:
	rm -rf temp logs .pytest_cache
	rm -rf dist build *.egg-info

# 上传打包产物到 pypi
upload:
	twine check dist/*
	twine upload dist/*

# 发布 make publish
publish:
	make clean
	make build
	make upload
	make clean

# 运行所有测试
.PHONY: test
test:
	pytest -c pytest.ini tests/api/test_index.py

# 安装开发环境依赖
# make install-require
.PHONY: install-require
install-require:
	pip install -r requirements/development.txt

# 快速提交
# make fix
.PHONY: fix
fix:
	git add . && git commit -m 'fix' && git push
