Merge pull request #376 from adamreese/ref/static-code-tools

ref(test-style): add a script for linting tools
pull/302/head
Adam Reese 9 years ago
commit b4c8e3c79d

@ -15,7 +15,7 @@
.PHONY: info
info:
$(MAKE) -C $(ROOTFS) $@
.PHONY: gocheck
ifndef GOPATH
$(error No GOPATH set)
@ -54,37 +54,19 @@ container: all
$(MAKE) -C $(ROOTFS) $@
.PHONY: test-unit
test-unit:
test-unit:
@echo Running tests...
go test -v $(GO_PKGS)
.PHONY: .test-style
test-style: lint vet
@if [[ -z $(shell gofmt -e -l -s $(GO_DIRS) | wc -l) ]]; then \
echo "gofmt check failed:"; gofmt -e -d -s $(GO_DIRS); exit 1; \
fi
.PHONY: test-flake8
test-flake8:
@echo Running flake8...
flake8 expansion
@echo ----------------
.PHONY: lint
lint:
@echo Running golint...
@for i in $(GO_PKGS); do \
golint $$i; \
done
@echo -----------------
.PHONY: vet
vet:
@echo Running go vet...
@for i in $(GO_DIRS); do \
go tool vet $$i; \
done
@echo -----------------
.PHONY: test-style
test-style:
@scripts/validate-go.sh
HAS_GLIDE := $(shell command -v glide;)
HAS_GOLINT := $(shell command -v golint;)

@ -12,7 +12,7 @@ dependencies:
- cd $GOPATH
- mkdir -p $GOPATH/src/$IMPORT_PATH
- cd $HOME/deployment-manager
- rsync -azC --delete ./ "$GOPATH/src/$IMPORT_PATH/"
- rsync -az --delete ./ "$GOPATH/src/$IMPORT_PATH/"
- wget "https://github.com/Masterminds/glide/releases/download/$GLIDE_VERSION/glide-$GLIDE_VERSION-linux-amd64.tar.gz"
- mkdir -p $HOME/bin
- tar -vxz -C $HOME/bin --strip=1 -f glide-$GLIDE_VERSION-linux-amd64.tar.gz

@ -0,0 +1,55 @@
#!/usr/bin/env bash
# Copyright 2016 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eo pipefail
[[ "$TRACE" ]] && set -x
readonly reset=$(tput sgr0)
readonly red=$(tput bold; tput setaf 1)
readonly green=$(tput bold; tput setaf 2)
readonly yellow=$(tput bold; tput setaf 3)
exit_code=0
find_go_files() {
git ls-files '*.go'
}
echo "==> Running golint..."
for pkg in $(glide nv); do
if golint_out=$(golint "$pkg" 2>&1); then
echo "${yellow}${golint_out}${reset}"
fi
done
echo "==> Running go vet..."
if ! vet_out=$(go vet "$(glide nv)" 2>&1); then
echo
echo "${red}${vet_out}${reset}"
exit_code=1
fi
echo "==> Running gofmt..."
failed_fmt=$(find_go_files | xargs gofmt -s -l)
if [[ -n "${failed_fmt}" ]]; then
echo "${red}"
echo "gofmt check failed:"
echo "$failed_fmt"
echo "${reset}"
exit_code=1
fi
exit ${exit_code}
Loading…
Cancel
Save