diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b45c62f5..ed27319e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -10,15 +10,11 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - - name: Set up Go 1.x - uses: actions/setup-go@v3 + + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: - go-version: ^1.19 - id: go - - - name: Check out code into the Go module directory - uses: actions/checkout@v3 + go-version-file: go.mod - name: Build Test run: | diff --git a/go.mod b/go.mod index 28784d62..9e8f6bcc 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,11 @@ module github.com/container-storage-interface/spec -go 1.18 +go 1.24 + +tool ( + google.golang.org/grpc/cmd/protoc-gen-go-grpc + google.golang.org/protobuf/cmd/protoc-gen-go +) require ( google.golang.org/grpc v1.57.1 @@ -13,4 +18,5 @@ require ( golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5 // indirect + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index 7fc3be69..e09bd8b5 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,7 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= @@ -14,8 +15,9 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg= google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= - diff --git a/lib/go/.gitignore b/lib/go/.gitignore index 44dae3ea..36933a03 100644 --- a/lib/go/.gitignore +++ b/lib/go/.gitignore @@ -1,4 +1,3 @@ /protoc -/protoc-gen-go /csi.a /.protoc diff --git a/lib/go/Makefile b/lib/go/Makefile index 0541c6d1..ba6f3f78 100644 --- a/lib/go/Makefile +++ b/lib/go/Makefile @@ -1,25 +1,5 @@ all: build -######################################################################## -## GOLANG ## -######################################################################## - -# If GOPATH isn't defined then set its default location. -ifeq (,$(strip $(GOPATH))) -GOPATH := $(HOME)/go -else -# If GOPATH is already set then update GOPATH to be its own -# first element. -GOPATH := $(word 1,$(subst :, ,$(GOPATH))) -endif -export GOPATH - -GOBIN := $(shell go env GOBIN) -ifeq (,$(strip $(GOBIN))) -GOBIN := $(GOPATH)/bin -endif - - ######################################################################## ## PROTOC ## ######################################################################## @@ -46,11 +26,6 @@ PROTOC_URL := https://github.com/protocolbuffers/protobuf/releases/download/v$(P PROTOC_TMP_DIR := .protoc PROTOC := $(PROTOC_TMP_DIR)/bin/protoc -$(GOBIN)/protoc-gen-go: ../../go.mod - go install google.golang.org/protobuf/cmd/protoc-gen-go -$(GOBIN)/protoc-gen-go-grpc: - go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 - $(PROTOC): -mkdir -p "$(PROTOC_TMP_DIR)" && \ curl -L $(PROTOC_URL) -o "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" && \ @@ -58,16 +33,7 @@ $(PROTOC): chmod 0755 "$@" stat "$@" > /dev/null 2>&1 -PROTOC_ALL := $(GOBIN)/protoc-gen-go $(GOBIN)/protoc-gen-go-grpc $(PROTOC) - -######################################################################## -## PATH ## -######################################################################## - -# Update PATH with GOBIN. This enables the protoc binary to discover -# the protoc-gen-go binary -export PATH := $(GOBIN):$(PATH) - +PROTOC_ALL := protoc-gen-go protoc-gen-go-grpc $(PROTOC) ######################################################################## ## BUILD ## @@ -78,9 +44,10 @@ CSI_GO := $(CSI_PKG_SUB)/csi.pb.go CSI_GRPC := $(CSI_PKG_SUB)/csi_grpc.pb.go # This recipe generates the go language bindings -$(CSI_GO) $(CSI_GRPC): $(CSI_PROTO) $(PROTOC_ALL) +$(CSI_GO) $(CSI_GRPC): $(CSI_PROTO) $(PROTOC_ALL) ../../go.mod @mkdir -p "$(@D)" - $(PROTOC) -I../.. --go-grpc_out=$(CSI_PKG_SUB) --go_out=$(CSI_PKG_SUB) \ + $(PROTOC) --plugin=./protoc-gen-go --plugin=./protoc-gen-go-grpc \ + -I../.. --go-grpc_out=$(CSI_PKG_SUB) --go_out=$(CSI_PKG_SUB) \ --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative \ "$(