mirror of
https://github.com/grafana/grafana.git
synced 2024-11-30 12:44:10 -06:00
caa1314f44
* Build: use golangci-lint as a make command * Since gometalinter was deprecated in favor of golangci-lint so it was replaced by it. Responsibilities held by the gometalinter was moved to golangci-lint * There was some changes in implementation (that was also mentioned in the code comment) between the tools, which uncovered couple errors in the code. Those issues were either solved or disabled by the inline comments * Introduce the golangci-lint config, to make their configuration more manageable * Build: replace backend-lint.sh script with make
139 lines
3.4 KiB
Makefile
139 lines
3.4 KiB
Makefile
-include local/Makefile
|
|
|
|
.PHONY: all deps-go deps-js deps build-go build-server build-cli build-js build build-docker-dev build-docker-full lint-go gosec revive golangci-lint go-vet test-go test-js test run clean devenv devenv-down revive-alerting
|
|
|
|
GO := GO111MODULE=on go
|
|
GO_FILES := ./pkg/...
|
|
|
|
all: deps build
|
|
|
|
deps-go:
|
|
go run build.go setup
|
|
|
|
deps-js: node_modules
|
|
|
|
deps: deps-js
|
|
|
|
build-go:
|
|
@echo "build go files"
|
|
GO111MODULE=on go run build.go build
|
|
|
|
build-server:
|
|
@echo "build server"
|
|
GO111MODULE=on go run build.go build-server
|
|
|
|
build-cli:
|
|
@echo "build in CI environment"
|
|
GO111MODULE=on go run build.go build-cli
|
|
|
|
build-js:
|
|
@echo "build frontend"
|
|
yarn run build
|
|
|
|
build: build-go build-js
|
|
|
|
build-docker-dev:
|
|
@echo "build development container"
|
|
@echo "\033[92mInfo:\033[0m the frontend code is expected to be built already."
|
|
GO111MODULE=on go run build.go -goos linux -pkg-arch amd64 ${OPT} build pkg-archive latest
|
|
cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
|
|
cd packaging/docker && docker build --tag grafana/grafana:dev .
|
|
|
|
build-docker-full:
|
|
@echo "build docker container"
|
|
docker build --tag grafana/grafana:dev .
|
|
|
|
test-go:
|
|
@echo "test backend"
|
|
GO111MODULE=on go test -v ./pkg/...
|
|
|
|
test-js:
|
|
@echo "test frontend"
|
|
yarn test
|
|
|
|
test: test-go test-js
|
|
|
|
clean:
|
|
@echo "cleaning"
|
|
rm -rf node_modules
|
|
rm -rf public/build
|
|
|
|
node_modules: package.json yarn.lock
|
|
@echo "install frontend dependencies"
|
|
yarn install --pure-lockfile --no-progress
|
|
|
|
scripts/go/bin/revive: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/revive github.com/mgechev/revive
|
|
|
|
scripts/go/bin/gosec: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/gosec github.com/securego/gosec/cmd/gosec
|
|
|
|
scripts/go/bin/bra: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/bra github.com/Unknwon/bra
|
|
|
|
scripts/go/bin/golangci-lint: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/golangci-lint github.com/golangci/golangci-lint/cmd/golangci-lint
|
|
|
|
revive: scripts/go/bin/revive
|
|
@echo "lint via revive"
|
|
@scripts/go/bin/revive \
|
|
-formatter stylish \
|
|
-config ./scripts/go/configs/revive.toml \
|
|
$(GO_FILES)
|
|
|
|
revive-alerting: scripts/go/bin/revive
|
|
@echo "lint alerting via revive"
|
|
@scripts/go/bin/revive \
|
|
-formatter stylish \
|
|
./pkg/services/alerting/...
|
|
|
|
# TODO recheck the rules and leave only necessary exclusions
|
|
gosec: scripts/go/bin/gosec
|
|
@echo "lint via gosec"
|
|
@scripts/go/bin/gosec -quiet \
|
|
-exclude=G104,G107,G201,G202,G204,G301,G304,G401,G402,G501 \
|
|
-conf=./scripts/go/configs/gosec.json \
|
|
$(GO_FILES)
|
|
|
|
golangci-lint: scripts/go/bin/golangci-lint
|
|
@echo "lint via golangci-lint"
|
|
@scripts/go/bin/golangci-lint run \
|
|
--config ./scripts/go/configs/.golangci.yml \
|
|
$(GO_FILES)
|
|
|
|
go-vet:
|
|
@echo "lint via go vet"
|
|
@go vet $(GO_FILES)
|
|
|
|
lint-go: go-vet golangci-lint revive revive-alerting gosec
|
|
|
|
run: scripts/go/bin/bra
|
|
@scripts/go/bin/bra run
|
|
|
|
# create docker-compose file with provided sources and start them
|
|
# example: make devenv sources=postgres,openldap
|
|
ifeq ($(sources),)
|
|
devenv:
|
|
@printf 'You have to define sources for this command \nexample: make devenv sources=postgres,openldap\n'
|
|
else
|
|
devenv: devenv-down
|
|
$(eval targets := $(shell echo '$(sources)' | tr "," " "))
|
|
|
|
@cd devenv; \
|
|
./create_docker_compose.sh $(targets) || \
|
|
(rm -rf docker-compose.yaml; exit 1)
|
|
|
|
@cd devenv; \
|
|
docker-compose up -d --build
|
|
endif
|
|
|
|
# drop down the envs
|
|
devenv-down:
|
|
@cd devenv; \
|
|
test -f docker-compose.yaml && \
|
|
docker-compose down || exit 0;
|