Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[draft] testbench snapshot #59

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
bin
include
test
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ log.html
output.xml
report.html
__pycache__

# Protoc files
include/
readme.txt
16 changes: 5 additions & 11 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,19 @@ RUN yum install -y nodejs npm java-11
# Copy the go source
COPY ["Makefile", "main.go", ".openapi-generator-ignore", "openapitools.json", "./"]

# Download protoc compiler v24.3
RUN wget -q https://github.com/protocolbuffers/protobuf/releases/download/v24.3/protoc-24.3-linux-x86_64.zip -O protoc.zip && \
unzip -q protoc.zip && \
bin/protoc --version && \
rm protoc.zip

# Download tools
RUN make deps

# Copy rest of the source
COPY bin/ bin/
COPY .git/ .git/
COPY cmd/ cmd/
COPY api/ api/
COPY internal/ internal/
COPY pkg/ pkg/
COPY scripts/ scripts/
COPY pkg/ pkg/
COPY patches/ patches/
COPY templates/ templates/

# Download tools
RUN make deps

# Build
USER root
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 make clean model-registry
Expand Down
46 changes: 27 additions & 19 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
PROJECT_PATH := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
PROJECT_BIN := $(PROJECT_PATH)/bin
GO := $(PROJECT_BIN)/go1.19

# add tools bin directory
PATH := $(PROJECT_BIN):$(PATH)
Expand Down Expand Up @@ -56,7 +57,7 @@ api/grpc/ml_metadata/proto/metadata_store_service.proto:
sed -i 's#syntax = "proto[23]";#&\noption go_package = "github.com/kubeflow/model-registry/internal/ml_metadata/proto";#' metadata_store_service.proto

internal/ml_metadata/proto/%.pb.go: api/grpc/ml_metadata/proto/%.proto
protoc -I./api/grpc --go_out=./internal --go_opt=paths=source_relative \
bin/protoc -I./api/grpc --go_out=./internal --go_opt=paths=source_relative \
--go-grpc_out=./internal --go-grpc_opt=paths=source_relative $<

.PHONY: gen/grpc
Expand All @@ -76,8 +77,8 @@ openapi/validate: bin/openapi-generator-cli
# generate the openapi server implementation
.PHONY: gen/openapi-server
gen/openapi-server: bin/openapi-generator-cli openapi/validate
@if git diff --cached --name-only | grep -q "api/openapi/model-registry.yaml" || \
git diff --name-only | grep -q "api/openapi/model-registry.yaml" || \
@if git diff --exit-code --name-only | grep -q "api/openapi/model-registry.yaml" || \
git diff --exit-code --name-only | grep -q "api/openapi/model-registry.yaml" || \
[ -n "${FORCE_SERVER_GENERATION}" ]; then \
ROOT_FOLDER="." ./scripts/gen_openapi_server.sh; \
else \
Expand All @@ -97,7 +98,7 @@ pkg/openapi/client.go: bin/openapi-generator-cli api/openapi/model-registry.yaml

.PHONY: vet
vet:
go vet ./...
${GO} vet ./...

.PHONY: clean
clean:
Expand All @@ -107,22 +108,29 @@ clean:
clean/odh:
rm -Rf ./model-registry

bin/go:
GOBIN=$(PROJECT_BIN) go install golang.org/dl/go1.19@latest
$(PROJECT_BIN)/go1.19 download

bin/protoc:
./scripts/install_protoc.sh

bin/go-enum:
GOBIN=$(PROJECT_BIN) go install github.com/searKing/golang/tools/[email protected]
GOBIN=$(PROJECT_BIN) ${GO} install github.com/searKing/golang/tools/[email protected]

bin/protoc-gen-go:
GOBIN=$(PROJECT_BIN) go install google.golang.org/protobuf/cmd/[email protected]
GOBIN=$(PROJECT_BIN) ${GO} install google.golang.org/protobuf/cmd/[email protected]

bin/protoc-gen-go-grpc:
GOBIN=$(PROJECT_BIN) go install google.golang.org/grpc/cmd/[email protected]
GOBIN=$(PROJECT_BIN) ${GO} install google.golang.org/grpc/cmd/[email protected]

GOLANGCI_LINT ?= ${PROJECT_BIN}/golangci-lint
bin/golangci-lint:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(PROJECT_BIN) v1.54.2

GOVERTER ?= ${PROJECT_BIN}/goverter
bin/goverter:
GOBIN=$(PROJECT_PATH)/bin go install github.com/jmattheis/goverter/cmd/[email protected]
GOBIN=$(PROJECT_PATH)/bin ${GO} install github.com/jmattheis/goverter/cmd/[email protected]

OPENAPI_GENERATOR ?= ${PROJECT_BIN}/openapi-generator-cli
NPM ?= "$(shell which npm)"
Expand All @@ -147,23 +155,23 @@ clean/deps:
rm -Rf bin/*

.PHONY: deps
deps: bin/go-enum bin/protoc-gen-go bin/protoc-gen-go-grpc bin/golangci-lint bin/goverter bin/openapi-generator-cli
deps: bin/go bin/protoc bin/go-enum bin/protoc-gen-go bin/protoc-gen-go-grpc bin/golangci-lint bin/goverter bin/openapi-generator-cli

.PHONY: vendor
vendor:
go mod vendor
${GO} mod vendor

.PHONY: build
build: gen vet lint
go build
${GO} build -buildvcs=false

.PHONY: build/odh
build/odh: vet
go build
${GO} build -buildvcs=false

.PHONY: gen
gen: deps gen/grpc gen/openapi gen/openapi-server gen/converter
go generate ./...
${GO} generate ./...

.PHONY: lint
lint:
Expand All @@ -172,20 +180,20 @@ lint:

.PHONY: test
test: gen
go test ./internal/... ./pkg/...
${GO} test ./internal/... ./pkg/...

.PHONY: test-nocache
test-nocache: gen
go test ./internal/... ./pkg/... -count=1
${GO} test ./internal/... ./pkg/... -count=1

.PHONY: test-cover
test-cover: gen
go test ./internal/... ./pkg/... -coverprofile=coverage.txt
go tool cover -html=coverage.txt -o coverage.html
${GO} test ./internal/... ./pkg/... -coverprofile=coverage.txt
${GO} tool cover -html=coverage.txt -o coverage.html

.PHONY: run/proxy
run/proxy: gen
go run main.go proxy --logtostderr=true
${GO} run main.go proxy --logtostderr=true

.PHONY: proxy
proxy: build
Expand All @@ -204,7 +212,7 @@ endif
# build docker image
.PHONY: image/build
image/build:
${DOCKER} build . -f ${DOCKERFILE} -t ${IMG}:$(IMG_VERSION)
${DOCKER} build . -f ${DOCKERFILE} -t ${IMG}:$(IMG_VERSION) --network host

# push docker image
.PHONY: image/push
Expand Down
Loading
Loading