mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-04 20:20:19 +00:00
105 lines
3.1 KiB
Makefile
105 lines
3.1 KiB
Makefile
|
SHELL = bash
|
||
|
BUILD_FLAGS =
|
||
|
TEST_FLAGS =
|
||
|
COMPOSE ?= docker-compose
|
||
|
|
||
|
all: fmt build up test lint
|
||
|
|
||
|
build:
|
||
|
go build $(BUILD_FLAGS) ./...
|
||
|
|
||
|
builddir:
|
||
|
mkdir -p -m 0777 build
|
||
|
|
||
|
install:
|
||
|
go install ./cmd/ppkmip
|
||
|
go install ./cmd/kmipgen
|
||
|
|
||
|
ppkmip: builddir
|
||
|
GOOS=darwin GOARCH=amd64 go build -o build/ppkmip-macos ./cmd/ppkmip
|
||
|
GOOS=windows GOARCH=amd64 go build -o build/ppkmip-windows.exe ./cmd/ppkmip
|
||
|
GOOS=linux GOARCH=amd64 go build -o build/ppkmip-linux ./cmd/ppkmip
|
||
|
|
||
|
kmipgen:
|
||
|
go install ./cmd/kmipgen
|
||
|
|
||
|
lint:
|
||
|
golangci-lint run
|
||
|
|
||
|
clean:
|
||
|
rm -rf build/*
|
||
|
|
||
|
fmt:
|
||
|
gofumpt -w -l .
|
||
|
|
||
|
# generates go code structures representing all the enums, mask, and tags defined
|
||
|
# in the KMIP spec. The source specifications are stored in kmip14/kmip_1_4.json
|
||
|
# and ttls/kmip20/kmip_2_0_additions.json. The generated .go files are named *_generated.go
|
||
|
#
|
||
|
# the kmipgen tool (defined in cmd/kmipgen) is used to generate the source. This tool can
|
||
|
# be used independently to generate source for future specs or vendor extensions.
|
||
|
#
|
||
|
# this target only needs to be run if the json files are changed. The generated
|
||
|
# go files should be committed to source control.
|
||
|
generate:
|
||
|
go generate ./...
|
||
|
|
||
|
test:
|
||
|
go test $(BUILD_FLAGS) $(TEST_FLAGS) ./...
|
||
|
|
||
|
# creates a test coverage report, and produces json test output. useful for ci.
|
||
|
cover: builddir
|
||
|
go test $(TEST_FLAGS) -v -covermode=count -coverprofile=build/coverage.out -json ./...
|
||
|
go tool cover -html=build/coverage.out -o build/coverage.html
|
||
|
|
||
|
# brings up the projects dependencies in a compose stack
|
||
|
up:
|
||
|
$(COMPOSE) build --pull pykmip-server
|
||
|
$(COMPOSE) run --rm dependencies
|
||
|
|
||
|
# brings down the projects dependencies
|
||
|
down:
|
||
|
$(COMPOSE) down -v --remove-orphans
|
||
|
|
||
|
# runs the build inside a docker container. useful for ci to completely encapsulate the
|
||
|
# build environment.
|
||
|
docker:
|
||
|
$(COMPOSE) build --pull builder
|
||
|
$(COMPOSE) run --rm builder make all cover
|
||
|
|
||
|
# opens a shell into the build environment container. Useful for troubleshooting the
|
||
|
# containerized build.
|
||
|
bash:
|
||
|
$(COMPOSE) build --pull builder
|
||
|
$(COMPOSE) run --rm builder bash
|
||
|
|
||
|
# opens a shell into the build environment container. Useful for troubleshooting the
|
||
|
# containerized build.
|
||
|
fish:
|
||
|
$(COMPOSE) build --pull builder
|
||
|
$(COMPOSE) run --rm builder fish
|
||
|
|
||
|
tidy:
|
||
|
go mod tidy
|
||
|
|
||
|
# use go mod to update all dependencies
|
||
|
update:
|
||
|
go get -u ./...
|
||
|
go mod tidy
|
||
|
|
||
|
# install tools used by the build. typically only needs to be run once
|
||
|
# to initialize a workspace.
|
||
|
tools: kmipgen
|
||
|
go install mvdan.cc/gofumpt@latest
|
||
|
go install golang.org/x/tools/cmd/cover@latest
|
||
|
sh -c "$$(wget -O - -q https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh || echo exit 2)" -- -b $(shell go env GOPATH)/bin $(GOLANGCI_LINT_VERSION)
|
||
|
|
||
|
pykmip-server: up
|
||
|
$(COMPOSE) exec pykmip-server tail -f server.log
|
||
|
|
||
|
gen-certs:
|
||
|
openssl req -x509 -newkey rsa:4096 -keyout pykmip-server/server.key -out pykmip-server/server.cert -days 3650 -nodes -subj '/CN=localhost'
|
||
|
|
||
|
.PHONY: all build builddir run artifacts vet lint clean fmt test testall testreport up down pull builder runc ci bash fish image prep vendor.update vendor.ensure tools buildtools migratetool db.migrate
|
||
|
|