1
1
.SILENT :
2
2
3
3
.PHONY : \
4
+ clean-dist \
4
5
devdeps \
6
+ dist \
7
+ dockerbase \
5
8
lint
6
9
7
10
.DEFAULT : all
@@ -23,6 +26,8 @@ MPY_TARGET_DIR ?= .compiled
23
26
PY_KMK_TREE = $(shell find $(MPY_SOURCES ) -name "* .py")
24
27
DIST_DESCRIBE = $(shell $(DIST_DESCRIBE_CMD ) )
25
28
29
+ TIMESTAMP := $(shell date +% s)
30
+
26
31
all : copy-kmk copy-bootpy copy-keymap copy-board
27
32
28
33
compile : $(MPY_TARGET_DIR ) /.mpy.compiled
@@ -39,56 +44,23 @@ endif
39
44
@rm -rf $(MPY_SOURCES)/release_info.py
40
45
@touch $(MPY_TARGET_DIR)/.mpy.compiled
41
46
42
- dist : dist/kmk-latest.zip dist/kmk-latest.unoptimized.zip dist/$(DIST_DESCRIBE ) .zip dist/$(DIST_DESCRIBE ) .unoptimized.zip
43
-
44
- dist-deploy : devdeps dist
45
- @echo " ===> Uploading artifacts to https://cdn.kmkfw.io/"
46
- @$(PIPENV ) run s3cmd -c .s3cfg put -P dist/kmk-$(DIST_DESCRIBE ) .zip dist/kmk-$(DIST_DESCRIBE ) .unoptimized.zip s3://kmk-releases/ > /dev/null
47
- @[[ " $$ {CIRCLE_BRANCH}" == " master" ]] && echo " ====> Uploading artifacts as 'latest' to https://cdn.kmkfw.io/" || true
48
- @[[ " $$ {CIRCLE_BRANCH}" == " master" ]] && $(PIPENV ) run s3cmd -c .s3cfg put -P dist/kmk-latest.zip dist/kmk-latest.unoptimized.zip s3://kmk-releases/ > /dev/null || true
49
- @[[ -n " $$ {CIRCLE_TAG}" ]] && echo " ====> Uploading artifacts as '$$ {CIRCLE_TAG}' to https://cdn.kmkfw.io/" || true
50
- @[[ -n " $$ {CIRCLE_TAG}" ]] && $(PIPENV ) run s3cmd -c .s3cfg put -P dist/kmk-latest.zip s3://kmk-releases/$$ {CIRCLE_TAG}.zip > /dev/null || true
51
- @[[ -n " $$ {CIRCLE_TAG}" ]] && $(PIPENV ) run s3cmd -c .s3cfg put -P dist/kmk-latest.unoptimized.zip s3://kmk-releases/$$ {CIRCLE_TAG}.unoptimized.zip > /dev/null || true
52
-
53
- dist/kmk-latest.zip : compile boot.py
54
- @echo " ===> Building optimized ZIP"
55
- @mkdir -p dist
56
- @cd $(MPY_TARGET_DIR ) && zip -r ../dist/kmk-latest.zip kmk 2>&1 > /dev/null
57
- @zip -r dist/kmk-latest.zip boot.py 2>&1 > /dev/null
58
-
59
- dist/$(DIST_DESCRIBE ) .zip : dist/kmk-latest.zip
60
- @echo " ===> Aliasing optimized ZIP"
61
- @cp dist/kmk-latest.zip dist/kmk-$(DIST_DESCRIBE ) .zip
62
-
63
- dist/kmk-latest.unoptimized.zip : $(PY_KMK_TREE ) boot.py
64
- @echo " ===> Building unoptimized ZIP"
65
- @mkdir -p dist
66
- @echo " KMK_RELEASE = '$( DIST_DESCRIBE) '" > kmk/release_info.py
67
- @zip -r dist/kmk-latest.unoptimized.zip kmk boot.py 2>&1 > /dev/null
68
- @rm -rf kmk/release_info.py
69
-
70
- dist/$(DIST_DESCRIBE ) .unoptimized.zip : dist/kmk-latest.unoptimized.zip
71
- @echo " ===> Aliasing unoptimized ZIP"
72
- @cp dist/kmk-latest.unoptimized.zip dist/kmk-$(DIST_DESCRIBE ) .unoptimized.zip
73
-
74
- .docker_base : Dockerfile
75
- @echo " ===> Building Docker base image kmkfw/base:${DOCKER_BASE_TAG} "
76
- @docker build -t kmkfw/base:${DOCKER_BASE_TAG} .
77
- @touch .docker_base
78
-
79
- docker-base : .docker_base
80
-
81
- docker-base-deploy : docker-base
82
- @echo " ===> Pushing Docker base image kmkfw/base:${DOCKER_BASE_TAG} to Docker Hub"
83
- @docker push kmkfw/base:${DOCKER_BASE_TAG}
84
-
85
47
.devdeps : Pipfile.lock
86
48
@echo " ===> Installing dependencies with pipenv"
87
49
@$(PIPENV ) sync --dev
88
50
@touch .devdeps
89
51
90
52
devdeps : .devdeps
91
53
54
+ dist : clean-dist dockerbase
55
+ @mkdir -p .dist
56
+ @docker run --rm -it -v $$(pwd ) /.dist:/dist kmkpy:$(TIMESTAMP )
57
+
58
+ dockerbase :
59
+ docker build . \
60
+ -t kmkpy:$(TIMESTAMP ) \
61
+ --build-arg KMKPY_URL=$$(cut -f1 < kmkpython_ref.tsv ) \
62
+ --build-arg KMKPY_REF=$$(cut -f2 < kmkpython_ref.tsv )
63
+
92
64
lint : devdeps
93
65
@$(PIPENV ) run flake8
94
66
@@ -98,10 +70,14 @@ fix-formatting: devdeps
98
70
fix-isort : devdeps
99
71
@find kmk/ user_keymaps/ boards/ -name " *.py" | xargs $(PIPENV ) run isort
100
72
101
- clean :
73
+ clean : clean-dist
102
74
@echo " ===> Cleaning build artifacts"
103
75
@rm -rf .devdeps build dist $(MPY_TARGET_DIR )
104
76
77
+ clean-dist :
78
+ @echo " ===> Cleaning KMKPython dists"
79
+ @rm -rf .dist
80
+
105
81
# This is mostly a leftover from the days we vendored stuff from
106
82
# micropython-lib via submodules. Leaving this here mostly in case someone goes
107
83
# exploring through the history of KMK's repo and manages to screw up their
@@ -173,5 +149,4 @@ ifdef BOARD
173
149
copy-board : $(MOUNTPOINT ) /kb.py
174
150
endif # BOARD
175
151
176
-
177
152
endif # MOUNTPOINT
0 commit comments