drone/Makefile
Patrick Wolf d789e5775e feat: [CODE-2402] : Update all occurences of 'gitness' to 'harness' within comments and markdown. Updated the logo reference (did not delete the Gitness logo directory yet). No active code changes except display strings. (#2684)
* Apply suggestion from code review
* updating images for signin and register page.
* fix: lint
* fix: logo update
* revert golangci
* Adding more strings and updated the logo. Still need to update the signin page images
* Apply suggestion from code review

Updating harness logo to use Open Source logo
* Update all occurences of 'gitness' to 'harness' within comments and markdown. Updated the logo reference (did not delete the Gitness logo directory yet).  No active code changes except display strings.
2024-09-25 00:13:28 +00:00

170 lines
5.2 KiB
Makefile

ifndef GOPATH
GOPATH := $(shell go env GOPATH)
endif
ifndef GOBIN # derive value from gopath (default to first entry, similar to 'go get')
GOBIN := $(shell go env GOPATH | sed 's/:.*//')/bin
endif
tools = $(addprefix $(GOBIN)/, golangci-lint goimports govulncheck protoc-gen-go protoc-gen-go-grpc gci)
deps = $(addprefix $(GOBIN)/, wire dbmate)
ifneq (,$(wildcard ./.local.env))
include ./.local.env
export
endif
.DEFAULT_GOAL := all
###############################################################################
#
# Initialization
#
###############################################################################
init: ## Install git hooks to perform pre-commit checks
git config core.hooksPath .githooks
git config commit.template .gitmessage
dep: $(deps) ## Install the deps required to generate code and build Harness
@echo "Installing dependencies"
@go mod download
tools: $(tools) ## Install tools required for the build
@echo "Installed tools"
###############################################################################
#
# Harness Build and testing rules
#
###############################################################################
build: generate ## Build the all-in-one Harness binary
@echo "Building Harness Server"
go build -o ./gitness ./cmd/gitness
test: generate ## Run the go tests
@echo "Running tests"
go test -v -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
###############################################################################
#
# Artifact Registry Build and testing rules
#
###############################################################################
run: clean build
./gitness server .local.env || true
ar-conformance-test: clean build
./gitness server .local.env > logfile.log 2>&1 & echo $$! > server.PID
@sleep 10
./registry/tests/conformance_test.sh localhost:3000 || true
kill `cat server.PID`
@rm server.PID
@rm logfile.log
ar-hot-conformance-test:
rm -rf distribution-spec || true
./registry/tests/conformance_test.sh localhost:3000 || true
ar-api-update:
@set -e; \
oapi-codegen --config ./registry/config/openapi/artifact-services.yaml ./registry/app/api/openapi/api.yaml; \
oapi-codegen --config ./registry/config/openapi/artifact-types.yaml ./registry/app/api/openapi/api.yaml;
ar-clean:
@rm artifact-registry 2> /dev/null || true
@docker stop ps_artifacthub 2> /dev/null || true
rm -rf distribution-spec
@kill -9 $$(lsof -t -i:3000) || true
@rm server.PID || true
@rm logfile.log || true
go clean
###############################################################################
#
# Code Formatting and linting
#
###############################################################################
format: tools # Format go code and error if any changes are made
@echo "Formating ..."
@goimports -w .
@gci write --skip-generated --custom-order -s standard -s "prefix(github.com/harness/gitness)" -s default -s blank -s dot .
@echo "Formatting complete"
sec:
@echo "Vulnerability detection $(1)"
@govulncheck ./...
lint: tools generate # lint the golang code
@echo "Linting $(1)"
@golangci-lint run --timeout=3m --verbose
###############################################################################
# Code Generation
#
# Some code generation can be slow, so we only run it if
# the source file has changed.
###############################################################################
generate: wire
@echo "Generated Code"
wire: cmd/gitness/wire_gen.go
force-wire: ## Force wire code generation
@sh ./scripts/wire/gitness.sh
cmd/gitness/wire_gen.go: cmd/gitness/wire.go
@sh ./scripts/wire/gitness.sh
###############################################################################
# Install Tools and deps
#
# These targets specify the full path to where the tool is installed
# If the tool already exists it wont be re-installed.
###############################################################################
update-tools: delete-tools $(tools) ## Update the tools by deleting and re-installing
delete-tools: ## Delete the tools
@rm $(tools) || true
# Install golangci-lint
$(GOBIN)/golangci-lint:
@echo "🔘 Installing golangci-lint... (`date '+%H:%M:%S'`)"
@curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOBIN) v1.56.2
# Install goimports to format code
$(GOBIN)/goimports:
@echo "🔘 Installing goimports ... (`date '+%H:%M:%S'`)"
@go install golang.org/x/tools/cmd/goimports
# Install wire to generate dependency injection
$(GOBIN)/wire:
go install github.com/google/wire/cmd/wire@latest
# Install dbmate to perform db migrations
$(GOBIN)/dbmate:
go install github.com/amacneil/dbmate@v1.15.0
$(GOBIN)/govulncheck:
go install golang.org/x/vuln/cmd/govulncheck@v1.1.1
$(GOBIN)/protoc-gen-go:
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
$(GOBIN)/protoc-gen-go-grpc:
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
$(GOBIN)/gci:
go install github.com/daixiang0/gci@v0.13.1
help: ## show help message
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[$$()% 0-9a-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)
.PHONY: delete-tools update-tools help format lint