-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
105 lines (85 loc) · 2.96 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
SHELL=bash
python=python
pip=pip
tests=.
version:=$(shell $(python) version.py)
sdist_name:=MGSurvE-$(version).tar.gz
###############################################################################
# Unit Tests
###############################################################################
test:
@$(python) -m pytest -vv $(tests) --disable-pytest-warnings
check_build_reqs:
@$(python) -c 'import pytest' \
|| ( printf "$(redpip)Build requirements are missing. Run 'make prepare' to install them.$(normal)" ; false )
###############################################################################
# Pypi
###############################################################################
pypi: clean clean_sdist
set -x \
&& $(python) setup.py sdist bdist_wheel \
&& twine check dist/* \
&& twine upload dist/*
clean_pypi:
- rm -rf build/
conda_export:
- pip freeze > ./conda/requirements.txt
- conda env export | cut -f 1 -d '=' | grep -v "prefix" > ./conda/requirements.yml
conda_update:
- conda update --all -y
- pip freeze > ./conda/requirements.txt
- conda env export | cut -f 1 -d '=' | grep -v "prefix" > ./conda/requirements.yml
###############################################################################
# Docs
###############################################################################
doc:
- pip install .
- sphinx-apidoc -f -o docs/source MGSurvE
- sphinx-build -b html docs/source/ docs/build/html
###############################################################################
# Dev
###############################################################################
develop:
$(pip) install -e .
clean_develop:
- $(pip) uninstall -y MGSurvE
- rm -rf *.egg-info
clean_sdist:
- rm -rf dist
clean:
- clean_develop clean_pypi
dev:
- make clean
- make develop
- make test
dev_full:
- yes | pip install pytest sphinx sphinx_rtd_theme chardet twine wheel jupyter
- conda update -n base -c defaults conda -y
- conda update -n base -c conda-forge conda -y
- conda install -n base conda-libmamba-solver -y
- conda config --set solver libmamba -y
- conda config --add channels bioconda -y
- conda config --add channels conda-forge -y
- conda install gdal fiona pyproj cartopy libpysal -y
- conda install -c conda-forge deap nodejs osmnx basemap-data-hires -y
- pip install .
###############################################################################
# Docker
###############################################################################
docker_release:
- docker buildx build . \
--platform=linux/amd64,linux/arm64 \
-t chipdelmal/mgsurve:$(version) \
-t chipdelmal/mgsurve:latest \
--push
docker_run:
- docker run -it mgsurve:dev bash
docker_build:
- docker rmi mgsurve:dev -f
- docker build -t mgsurve:dev .
###############################################################################
# Full Release
###############################################################################
pypi-docker_release:
- make pypi
- make docker_release