e2e5e16ff2
* ci: break config into separate files * Untangle githooks * githooks: fix whitespace * .hooks/pre-commit: add ui -> lint-staged check - We no longer require dependency on husky with this change. * ui: remove husky dependency and config - The previous commit obviates the need for it. - We will now have to manage these hooks by hand, but this removes the conflict between husky-installed hooks and those in the .hooks dir. * ui: update yarn.lock with husky removed * .hooks/pre-commit: always use subshell + docs - Always use subshell means we consistently exit from the same place which feels less complex. - Docs are necessary for horrible bash like this I think... * Makefile: remove old husky githooks - Husky has installed a handler for every single git hook. - This causes warnings on every git operation. - Eventually we can remove this, but better not to confuse people with these messages for now. * ci: fix go build tags * Makefile: improve compatibility of rm call - Looks like the xargs in Travis does something different to the one on my mac, this more verbose call should be safe everywhere. * ci: fix make target names * ci: fix test-ui invocation * Makefile: simplify husky hook cleanup * ci: more focussed readme
48 lines
1.3 KiB
Makefile
48 lines
1.3 KiB
Makefile
.PHONY: default
|
|
default: ci-config
|
|
|
|
.PHONY: check-circleci-installed
|
|
check-circleci-installed:
|
|
@command -v circleci > /dev/null 2>&1 || { \
|
|
echo "Please install circleci-cli, see https://circleci.com/docs/2.0/local-cli/#installation"; \
|
|
exit 1; }
|
|
|
|
.PHONY: ci-config
|
|
# ci-config is just an alias for config.yml for now
|
|
ci-config: config.yml
|
|
|
|
CONFIG_SOURCE_DIR := config/
|
|
CONFIG_SOURCE := $(shell find config/) Makefile
|
|
OUT := config.yml
|
|
TMP := .tmp/config.yml.tmp
|
|
CONFIG_21 := .tmp/config.2.1.tmp
|
|
|
|
# Ensure the .tmp dir exists.
|
|
$(shell [ -d .tmp ] || mkdir .tmp)
|
|
|
|
define GEN_CONFIG
|
|
@circleci config pack $(CONFIG_SOURCE_DIR) > $(CONFIG_21)
|
|
@echo "### Generated by 'make ci-config' do not manually edit this file." > $@
|
|
@circleci config process $(CONFIG_21) >> $@
|
|
endef
|
|
|
|
$(OUT): $(CONFIG_SOURCE) check-circleci-installed
|
|
$(GEN_CONFIG)
|
|
@echo "$@ updated"
|
|
|
|
$(TMP): $(CONFIG_SOURCE) check-circleci-installed
|
|
$(GEN_CONFIG)
|
|
|
|
.PHONY: config-up-to-date
|
|
config-up-to-date: $(TMP) # Note this must not depend on $(OUT)!
|
|
@if diff config.yml $<; then \
|
|
echo "Generated $(OUT) is up to date!"; \
|
|
else \
|
|
echo "Generated $(OUT) is out of date, run make ci-config to update."; \
|
|
exit 1; \
|
|
fi
|
|
|
|
.PHONY: ci-verify
|
|
ci-verify: config-up-to-date
|
|
@circleci config validate config.yml
|