mirror of
https://github.com/grafana/grafana.git
synced 2024-12-02 05:29:42 -06:00
871ad73414
grafana-plugin-model is legacy and is replaced by new backend plugins SDK and architecture. Renderer is not part of SDK and we want to keep it that way for now since it's highly unlikely there will be more than one kind of renderer plugin. So this PR adds support for renderer plugin v2. Also adds support sending a Device Scale Factor parameter to the plugin v2 remote rendering service and by that replaces #22474. Adds support sending a Headers parameter to the plugin v2 and remote rendering service which for now only include Accect-Language header (the user locale in browser when using Grafana), ref grafana/grafana-image-renderer#45. Fixes health check json details response. Adds image renderer plugin configuration settings in defaults.ini and sample.ini. Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>
181 lines
5.5 KiB
Makefile
181 lines
5.5 KiB
Makefile
## This is a self-documented Makefile. For usage information, run `make help`:
|
|
##
|
|
## For more information, refer to https://suva.sh/posts/well-documented-makefiles/
|
|
|
|
-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 run-frontend clean devenv devenv-down revive-alerting protobuf help
|
|
|
|
GO = GO111MODULE=on go
|
|
GO_FILES ?= ./pkg/...
|
|
SH_FILES ?= $(shell find ./scripts -name *.sh)
|
|
|
|
all: deps build
|
|
|
|
##@ Dependencies
|
|
|
|
deps-go: ## Install backend dependencies.
|
|
$(GO) run build.go setup
|
|
|
|
deps-js: node_modules ## Install frontend dependencies.
|
|
|
|
deps: deps-js ## Install all dependencies.
|
|
|
|
node_modules: package.json yarn.lock ## Install node modules.
|
|
@echo "install frontend dependencies"
|
|
yarn install --pure-lockfile --no-progress
|
|
|
|
##@ Building
|
|
|
|
build-go: ## Build all Go binaries.
|
|
@echo "build go files"
|
|
$(GO) run build.go build
|
|
|
|
build-server: ## Build Grafana server.
|
|
@echo "build server"
|
|
$(GO) run build.go build-server
|
|
|
|
build-cli: ## Build Grafana CLI application.
|
|
@echo "build in CI environment"
|
|
$(GO) run build.go build-cli
|
|
|
|
build-js: ## Build frontend assets.
|
|
@echo "build frontend"
|
|
yarn run build
|
|
|
|
build: build-go build-js ## Build backend and frontend.
|
|
|
|
scripts/go/bin/bra: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/bra github.com/unknwon/bra
|
|
|
|
run: scripts/go/bin/bra ## Build and run web server on filesystem changes.
|
|
@GO111MODULE=on scripts/go/bin/bra run
|
|
|
|
run-frontend: deps-js ## Fetch js dependencies and watch frontend for rebuild
|
|
yarn start
|
|
|
|
##@ Testing
|
|
|
|
test-go: ## Run tests for backend.
|
|
@echo "test backend"
|
|
$(GO) test -v ./pkg/...
|
|
|
|
test-js: ## Run tests for frontend.
|
|
@echo "test frontend"
|
|
yarn test
|
|
|
|
test: test-go test-js ## Run all tests.
|
|
|
|
##@ Linting
|
|
|
|
scripts/go/bin/revive: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/revive github.com/mgechev/revive
|
|
|
|
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 \
|
|
-config ./scripts/go/configs/revive-strict.toml \
|
|
./pkg/services/alerting/... \
|
|
./pkg/services/provisioning/datasources/... \
|
|
./pkg/services/provisioning/dashboards/...
|
|
|
|
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
|
|
|
|
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)
|
|
|
|
scripts/go/bin/gosec: scripts/go/go.mod
|
|
@cd scripts/go; \
|
|
$(GO) build -o ./bin/gosec github.com/securego/gosec/cmd/gosec
|
|
|
|
# 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,G108,G201,G202,G204,G301,G304,G401,G402,G501 \
|
|
-conf=./scripts/go/configs/gosec.json \
|
|
$(GO_FILES)
|
|
|
|
go-vet:
|
|
@echo "lint via go vet"
|
|
@$(GO) vet $(GO_FILES)
|
|
|
|
lint-go: go-vet golangci-lint revive revive-alerting gosec ## Run all code checks for backend.
|
|
|
|
# with disabled SC1071 we are ignored some TCL,Expect `/usr/bin/env expect` scripts
|
|
shellcheck: $(SH_FILES) ## Run checks for shell scripts.
|
|
@docker run --rm -v "$$PWD:/mnt" koalaman/shellcheck:stable \
|
|
$(SH_FILES) -e SC1071 -e SC2162
|
|
|
|
##@ Docker
|
|
|
|
build-docker-dev: ## Build Docker image for development (fast).
|
|
@echo "build development container"
|
|
@echo "\033[92mInfo:\033[0m the frontend code is expected to be built already."
|
|
$(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: ## Build Docker image for development.
|
|
@echo "build docker container"
|
|
docker build --tag grafana/grafana:dev .
|
|
|
|
##@ Services
|
|
|
|
# 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 ## Start optional services, e.g. postgres, prometheus, and elasticsearch.
|
|
$(eval targets := $(shell echo '$(sources)' | tr "," " "))
|
|
|
|
@cd devenv; \
|
|
./create_docker_compose.sh $(targets) || \
|
|
(rm -rf {docker-compose.yaml,conf.tmp,.env}; exit 1)
|
|
|
|
@cd devenv; \
|
|
docker-compose up -d --build
|
|
endif
|
|
|
|
devenv-down: ## Stop optional services.
|
|
@cd devenv; \
|
|
test -f docker-compose.yaml && \
|
|
docker-compose down || exit 0;
|
|
|
|
##@ Helpers
|
|
|
|
# We separate the protobuf generation because most development tasks on
|
|
# Grafana do not involve changing protobuf files and protoc is not a
|
|
# go-gettable dependency and so getting it installed can be inconvenient.
|
|
#
|
|
# If you are working on changes to protobuf interfaces you may either use
|
|
# this target or run the individual scripts below directly.
|
|
protobuf: ## Compile protobuf definitions
|
|
bash scripts/protobuf-check.sh
|
|
bash pkg/plugins/backendplugin/pluginextensionv2/generate.sh
|
|
|
|
clean: ## Clean up intermediate build artifacts.
|
|
@echo "cleaning"
|
|
rm -rf node_modules
|
|
rm -rf public/build
|
|
|
|
help: ## Display this help.
|
|
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|