btrc & btrd
[m6w6/btr] / share / btr / build / composer.mk
1 BTR_BUILD_CLEAN=false
2 BTR_BUILD_ARGS= install --dev
3 BTR_TEST_ARGS= --strict --coverage-text
4
5 .PHONY: all clean
6 .SUFFIXES:
7
8 all: clean $(BTR_REPORT)
9 $(SAY) "Result: $$(cat $(BTR_REPORT))"
10
11 clean: $(BTR_CONFIG_REPORT)
12 if $(BTR_BUILD_CLEAN); \
13 then \
14 cd $(BTR_BUILD_DIR) && \
15 rm -rf vendor; \
16 fi;
17
18 $(BTR_REPORT): $(BTR_TEST_REPORT)
19 @( \
20 TESTS_PASSED=$$(grep -Pc '^ok \d+' < $(BTR_TEST_REPORT)); \
21 TESTS_FAILED=$$(grep -Pc '^not ok \d+' < $(BTR_TEST_REPORT)); \
22 \
23 printf "%d/%d" $$TESTS_PASSED $$TESTS_FAILED >$@; \
24 if test -s "$(BTR_LAST_REPORT)"; then \
25 LAST_PASSED=$$(grep -Pc '^ok \d+' < $(BTR_LAST_REPORT)); \
26 LAST_FAILED=$$(grep -Pc '^not ok \d+' < $(BTR_LAST_REPORT)); \
27 DIFF_PASSED=$$(bc <<<"$$TESTS_PASSED - $$LAST_PASSED"); \
28 DIFF_FAILED=$$(bc <<<"$$TESTS_FAILED - $$LAST_FAILED"); \
29 printf " %+d/%+d" $$DIFF_PASSED $$DIFF_FAILED >>$@; \
30 fi; \
31 printf "\n" >>$@; \
32 )
33
34 $(BTR_TEST_REPORT): $(BTR_BUILD_REPORT)
35 $(SAY) "Running unit tests..."
36 (cd $(BTR_BUILD_DIR) && \
37 phpunit --tap $(BTR_TEST_ARGS) . \
38 ) >$@
39
40 $(BTR_BUILD_REPORT): $(BTR_CONFIG_REPORT) $(BTR_BUILD_DIR)/composer.lock
41 $(SAY) "Installing dependencies..."
42 (cd $(BTR_BUILD_DIR) && \
43 ./composer.phar -n --no-ansi $(BTR_QUIET_FLAG) $(BTR_VERBOSE_FLAG) $(BTR_BUILD_ARGS) \
44 ) >$@
45
46 $(BTR_CONFIG_REPORT): $(BTR_BUILD_DIR)/composer.json $(BTR_BUILD_DIR)/composer.phar | $(BTR_LOG_DIR)
47 touch $@
48
49 $(BTR_BUILD_DIR):
50 mkdir -p $@
51
52 $(BTR_LOG_DIR):
53 mkdir -p $@
54
55 $(BTR_BUILD_DIR)/composer.phar: | $(BTR_BUILD_DIR) $(BTR_LOG_DIR)
56 $(SAY) "Orchestrating composer..."
57 (cd $(BTR_BUILD_DIR) && \
58 COMPOSER=$$(command -v composer); \
59 if test $$? -eq 0; \
60 then \
61 ln -s $$COMPOSER composer.phar; \
62 else \
63 curl $(BTR_SILENT_FLAG) -S http://getcomposer.org/installer | php; \
64 fi; \
65 ) >>$(BTR_CONFIG_REPORT)
66
67 $(BTR_BUILD_DIR)/composer.json: $(BTR_BRANCH_DIR)/composer.json | $(BTR_BUILD_DIR) $(BTR_LOG_DIR)
68 rsync $(BTR_QUIET_FLAG) $(BTR_VERBOSE_FLAG) -a --delete $(BTR_BRANCH_DIR)/ $(BTR_BUILD_DIR)/ \
69 >>$(BTR_CONFIG_REPORT)
70
71 $(BTR_BUILD_DIR)/composer.lock: $(BTR_BUILD_DIR)/composer.json $(BTR_BUILD_DIR)/composer.phar
72
73 # vim: noet