add gofmt verify in CI

Signed-off-by: Crazykev <crazykev@zju.edu.cn>
This commit is contained in:
Crazykev 2016-12-14 19:31:24 +08:00
parent 1d08519ffe
commit 3fa48e54ff
3 changed files with 27 additions and 0 deletions

View file

@ -17,6 +17,7 @@ before_script:
script: script:
- make .gitvalidation - make .gitvalidation
- make gofmt
- make lint - make lint
- make integration - make integration
- make docs - make docs

View file

@ -30,6 +30,7 @@ help:
@echo " * 'integration' - Execute integration tests" @echo " * 'integration' - Execute integration tests"
@echo " * 'clean' - Clean artifacts" @echo " * 'clean' - Clean artifacts"
@echo " * 'lint' - Execute the source code linter" @echo " * 'lint' - Execute the source code linter"
@echo " * 'gofmt' - Verify the source code gofmt"
lint: ${OCID_LINK} lint: ${OCID_LINK}
@which gometalinter > /dev/null 2>/dev/null || (echo "ERROR: gometalinter not found. Consider 'make install.tools' target" && false) @which gometalinter > /dev/null 2>/dev/null || (echo "ERROR: gometalinter not found. Consider 'make install.tools' target" && false)
@ -40,6 +41,9 @@ ${OCID_LINK}:
mkdir -p ${OCID_LINK_DIR} mkdir -p ${OCID_LINK_DIR}
ln -sfn ${CURDIR} ${OCID_LINK} ln -sfn ${CURDIR} ${OCID_LINK}
gofmt:
@./hack/verify-gofmt.sh
conmon: conmon:
make -C $@ make -C $@
@ -164,6 +168,7 @@ install.tools: .install.gitvalidation .install.gometalinter .install.md2man
conmon \ conmon \
default \ default \
docs \ docs \
gofmt \
help \ help \
install \ install \
lint \ lint \

21
hack/verify-gofmt.sh Executable file
View file

@ -0,0 +1,21 @@
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
find_files() {
find . -not \( \
\( \
-wholename '*/vendor/*' \
\) -prune \
\) -name '*.go'
}
GOFMT="gofmt -s"
bad_files=$(find_files | xargs $GOFMT -l)
if [[ -n "${bad_files}" ]]; then
echo "!!! '$GOFMT' needs to be run on the following files: "
echo "${bad_files}"
exit 1
fi