generate all protobuf and embed.go files in CI

This commit is contained in:
Willy Kloucek
2021-02-16 15:44:06 +01:00
parent 0726156f1b
commit aed03b5bf5
57 changed files with 1092 additions and 2976 deletions
+92 -15
View File
@@ -3,8 +3,9 @@ NAME := thumbnails
IMPORT := github.com/owncloud/ocis/$(NAME)
BIN := bin
DIST := dist
HUGO := hugo
PROTO_VERSION := v0
PROTO_SRC := pkg/proto/$(PROTO_VERSION)/*.proto
PROTO_SRC := pkg/proto/$(PROTO_VERSION)
ifeq ($(OS), Windows_NT)
EXECUTABLE := $(NAME).exe
@@ -26,6 +27,11 @@ GENERATE ?= $(PACKAGES)
TAGS ?=
ifndef GOPATH
export GOPATH := $(shell go env GOPATH)
endif
export PATH := $(PATH):$(GOPATH)/bin
ifndef OUTPUT
ifneq ($(DRONE_TAG),)
OUTPUT ?= $(subst v,,$(DRONE_TAG))
@@ -81,10 +87,6 @@ staticcheck:
lint:
for PKG in $(PACKAGES); do go run golang.org/x/lint/golint -set_exit_status $$PKG || exit 1; done;
.PHONY: generate
generate:
go generate $(GENERATE)
.PHONY: changelog
changelog:
go run github.com/restic/calens >| CHANGELOG.md
@@ -141,19 +143,94 @@ release-check:
.PHONY: release-finish
release-finish: release-copy release-check
.PHONY: proto-docs-build
proto-docs-build:
go get -u github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc; \
protoc --doc_out=./docs --doc_opt=./templates/grpc.tmpl,grpc.md $(PROTO_SRC)
.PHONY: watch
watch:
go run github.com/cespare/reflex -c reflex.conf
############ docs generate ############
.PHONY: docs-generate
docs-generate: config-docs-generate \
grpc-docs-generate
.PHONY: config-docs-generate
config-docs-generate:
go run github.com/owncloud/flaex >| ../docs/extensions/$(NAME)/configuration.md
.PHONY: watch
watch:
go run github.com/cespare/reflex -c reflex.conf
.PHONY: grpc-docs-generate
grpc-docs-generate: ../docs/extensions/${NAME}/grpc.md
.PHONY: pb
pb:
protoc --go_out=. --micro_out=. $(PROTO_SRC)
############ generate ############
.PHONY: generate
generate: ci-node-generate ci-go-generate
.PHONY: ci-go-generate
ci-go-generate: protobuf # CI runs ci-node-generate automatically before this target
go generate $(GENERATE)
.PHONY: ci-node-generate
ci-node-generate:
############ protobuf ############
$(GOPATH)/bin/protoc-gen-go:
GO111MODULE=off go get -v google.golang.org/protobuf/cmd/protoc-gen-go
$(GOPATH)/bin/protoc-gen-micro:
GO111MODULE=on go get -v github.com/micro/protoc-gen-micro/v2
$(GOPATH)/bin/protoc-gen-microweb:
GO111MODULE=off go get -v github.com/owncloud/protoc-gen-microweb
$(GOPATH)/bin/protoc-gen-openapiv2:
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2
$(GOPATH)/bin/protoc-gen-doc:
GO111MODULE=off go get -v github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc
.PHONY: $(PROTO_SRC)/${NAME}.pb.go
$(PROTO_SRC)/${NAME}.pb.go: $(GOPATH)/bin/protoc-gen-openapiv2 $(GOPATH)/bin/protoc-gen-go
protoc \
-I=../third_party/ \
-I=$(PROTO_SRC)/ \
-I=$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/ \
--go_out=. ${NAME}.proto
.PHONY: $(PROTO_SRC)/${NAME}.pb.micro.go
$(PROTO_SRC)/${NAME}.pb.micro.go: $(GOPATH)/bin/protoc-gen-openapiv2 $(GOPATH)/bin/protoc-gen-micro
protoc \
-I=../third_party/ \
-I=$(PROTO_SRC)/ \
-I=$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/ \
--micro_out=. ${NAME}.proto
.PHONY: $(PROTO_SRC)/${NAME}.pb.web.go
$(PROTO_SRC)/${NAME}.pb.web.go: $(GOPATH)/bin/protoc-gen-openapiv2 $(GOPATH)/bin/protoc-gen-microweb
protoc \
-I=../third_party/ \
-I=$(PROTO_SRC)/ \
-I=$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/ \
--microweb_out=. ${NAME}.proto
.PHONY: $(PROTO_SRC)/${NAME}.swagger.json
$(PROTO_SRC)/${NAME}.swagger.json: $(GOPATH)/bin/protoc-gen-openapiv2
protoc \
-I=../third_party/ \
-I=$(PROTO_SRC)/ \
-I=$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/ \
--openapiv2_out=$(PROTO_SRC)/ ${NAME}.proto
.PHONY: ../docs/extensions/${NAME}/grpc.md
../docs/extensions/${NAME}/grpc.md: $(GOPATH)/bin/protoc-gen-openapiv2 $(GOPATH)/bin/protoc-gen-doc
protoc \
-I=../third_party/ \
-I=$(PROTO_SRC)/ \
-I=$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/ \
--doc_opt=./templates/GRPC.tmpl,grpc.md \
--doc_out=../docs/extensions/${NAME} $(PROTO_SRC)/${NAME}.proto
.PHONY: protobuf
protobuf: $(PROTO_SRC)/${NAME}.pb.go \
$(PROTO_SRC)/${NAME}.pb.micro.go \
$(PROTO_SRC)/${NAME}.swagger.json \
../docs/extensions/${NAME}/grpc.md
#$(PROTO_SRC)/${NAME}.pb.web.go \ # not needed for thumbnails