diff --git a/tests.mk b/tests.mk index 9bce5a385..b3c47d4db 100644 --- a/tests.mk +++ b/tests.mk @@ -1,5 +1,16 @@ SYSTEM := $(shell sh -c 'uname -s 2>/dev/null') +bats: +ifeq ($(SYSTEM),Darwin) +ifneq ($(shell bats --version > /dev/null 2>&1 ; echo $$?),0) + brew install bats-core +endif +else + git clone https://github.com/josegonzalez/bats-core.git /tmp/bats + cd /tmp/bats && sudo ./install.sh /usr/local + rm -rf /tmp/bats +endif + shellcheck: ifneq ($(shell shellcheck --version > /dev/null 2>&1 ; echo $$?),0) ifeq ($(SYSTEM),Darwin) @@ -11,7 +22,16 @@ else endif endif -ci-dependencies: shellcheck bats +xmlstarlet: +ifneq ($(shell xmlstarlet --version > /dev/null 2>&1 ; echo $$?),0) +ifeq ($(SYSTEM),Darwin) + brew install xmlstarlet +else + sudo apt-get update -qq && sudo apt-get install -qq -y xmlstarlet +endif +endif + +ci-dependencies: shellcheck bats xmlstarlet setup-deploy-tests: mkdir -p /home/dokku @@ -57,20 +77,14 @@ ifeq ($(shell grep dokku.me /home/dokku/VHOST 2>/dev/null),) echo "dokku.me" > /home/dokku/VHOST endif -bats: -ifeq ($(SYSTEM),Darwin) -ifneq ($(shell bats --version > /dev/null 2>&1 ; echo $$?),0) - brew install bats-core -endif -else - git clone https://github.com/josegonzalez/bats-core.git /tmp/bats - cd /tmp/bats && sudo ./install.sh /usr/local - rm -rf /tmp/bats -endif - lint: # these are disabled due to their expansive existence in the codebase. we should clean it up though # SC2034: VAR appears unused - https://github.com/koalaman/shellcheck/wiki/SC2034 +ifeq ($(CIRCLECI),true) + @echo creating junit output... + @mkdir -p test-results/shellcheck + @$(QUIET) find . -not -path '*/\.*' -not -path './debian/*' -type f | xargs file | grep text | awk -F ':' '{ print $$1 }' | xargs head -n1 | egrep -B1 "bash" | grep "==>" | awk '{ print $$2 }' | xargs shellcheck -e SC2034 -f checkstyle | xmlstarlet tr tests/checkstyle2junit.xslt > test-results/shellcheck/results.xml +endif @echo linting... @$(QUIET) find . -not -path '*/\.*' -not -path './debian/*' -type f | xargs file | grep text | awk -F ':' '{ print $$1 }' | xargs head -n1 | egrep -B1 "bash" | grep "==>" | awk '{ print $$2 }' | xargs shellcheck -e SC2034 diff --git a/tests/checkstyle2junit.xslt b/tests/checkstyle2junit.xslt new file mode 100644 index 000000000..0fea4528c --- /dev/null +++ b/tests/checkstyle2junit.xslt @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Line + + : + + See https://www.shellcheck.net/wiki/ + + + +