Skip to content

Commit bbe82cd

Browse files
author
Ben Walker
committed
storage: Simplify makefile to remove docker
Signed-off-by: Ben Walker <[email protected]>
1 parent 8bc7b11 commit bbe82cd

File tree

9 files changed

+55
-21
lines changed

9 files changed

+55
-21
lines changed

.github/workflows/storage.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,20 @@ jobs:
3232
- name: Checkout repository
3333
uses: actions/checkout@v3
3434

35-
- name: Set up QEMU
36-
uses: docker/setup-qemu-action@v2
35+
- name: Setup Go
36+
uses: actions/setup-go@v2
3737

38-
# Workaround: https://github.com/docker/build-push-action/issues/461
39-
- name: Setup Docker buildx
40-
uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325
38+
- name: Install Protoc
39+
uses: arduino/setup-protoc@v1
40+
41+
- name: Install protoc-gen-go
42+
run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
43+
44+
- name: Install protoc-gen-doc
45+
run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest
46+
47+
- name: Install google-api-linter
48+
run: go install github.com/googleapis/api-linter/cmd/api-linter@latest
4149

4250
- name: Build protobufs
4351
run: make

storage/Makefile

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,41 @@
22
# Copyright (C) 2022 Intel Corporation
33
# Copyright (c) 2022 Dell Inc, or its subsidiaries.
44

5-
all:
6-
rm -rf ./v1alpha1/{autogen.md,gen,google}
7-
mkdir -p ./v1alpha1/gen/{go,cpp,python,java}
5+
# Make a variable named ','. Used to pass arguments with commas to protoc_compile.
6+
, := ,
87

9-
docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l go -o ./v1alpha1/gen/go/ --go-source-relative
10-
docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l cpp -o ./v1alpha1/gen/cpp/ --go-source-relative
11-
docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l python -o ./v1alpha1/gen/python/ --go-source-relative
12-
docker run --user=$$(id -u):$$(id -g) --rm -v "${PWD}":/defs -v "${PWD}/../common/v1":/common namely/protoc-all:1.47_2 -i /common --lint -d v1alpha1 -l java -o ./v1alpha1/gen/java/ --go-source-relative
8+
CURRENT_VERSION := v1alpha1
9+
COMMON_VERSION := v1
1310

14-
# protoc doesn't include annotation and http googleapis, so we have to get them here
11+
define protoc_compile
12+
mkdir -p $(CURRENT_VERSION)/gen/$(1)
13+
protoc --proto_path=../common/$(COMMON_VERSION) --proto_path=$(CURRENT_VERSION) \
14+
--$(1)_out=$(CURRENT_VERSION)/gen/$(1) \
15+
$(2) \
16+
$(CURRENT_VERSION)/*.proto
17+
endef
18+
19+
all: python cpp go doc lint
20+
21+
$(CURRENT_VERSION)/google:
1522
curl -kL https://github.com/googleapis/googleapis/archive/master.tar.gz | tar --strip=1 -zxvf - googleapis-master/google/api
16-
mv google "${PWD}"/v1alpha1/
17-
docker run --user=$$(id -u):$$(id -g) --rm --entrypoint=sh -v "${PWD}/../common/v1":/common -v "${PWD}"/v1alpha1/:/out -w /out ghcr.io/docker-multiarch/google-api-linter:1.36.0 -c "api-linter -I /common /out/*.proto --output-format summary"
18-
docker run --user=$$(id -u):$$(id -g) --rm --entrypoint=sh -v "${PWD}/../common/v1":/common -v "${PWD}"/v1alpha1/:/out -w /out -v "${PWD}"/v1alpha1:/protos pseudomuto/protoc-gen-doc -c "protoc -I /common -I /protos --doc_out=/out --doc_opt=markdown,autogen.md /protos/*.proto /common/*.proto"
19-
rm -rf "${PWD}"/v1alpha1/google
23+
mv google "$(CURRENT_VERSION)/"
24+
25+
python: $(CURRENT_VERSION)/google
26+
$(call protoc_compile,python,)
27+
28+
cpp: $(CURRENT_VERSION)/google
29+
$(call protoc_compile,cpp,)
30+
31+
go: $(CURRENT_VERSION)/google
32+
$(call protoc_compile,go,)
33+
mv $(CURRENT_VERSION)/gen/go/github.com/opiproject/opi-api/storage/$(CURRENT_VERSION)/gen/go/* $(CURRENT_VERSION)/gen/go/
34+
35+
doc: $(CURRENT_VERSION)/google
36+
$(call protoc_compile,doc,--doc_opt=markdown$(,)autogen.md)
37+
38+
lint: $(CURRENT_VERSION)/google
39+
api-linter -I$(CURRENT_VERSION)/ -I../common/$(COMMON_VERSION) $(CURRENT_VERSION)/*proto
40+
41+
clean:
42+
rm -rf $(CURRENT_VERSION)/google

storage/v1/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

storage/v1alpha1/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
google
File renamed without changes.

storage/v1alpha1/frontend_nvme_pcie.proto

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ option java_multiple_files = true;
1010
option java_outer_classname = "FrontendNvmePcieProto";
1111

1212
option go_package = "github.com/opiproject/opi-api/storage/v1alpha1/gen/go";
13-
import "common.proto";
13+
14+
import "common/common.proto";
1415
import "object_key.proto";
1516
import "uuid.proto";
1617
import "google/protobuf/empty.proto";

storage/v1alpha1/frontend_virtio_blk.proto

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ option java_multiple_files = true;
99
option java_outer_classname = "FrontendVirtioBlkProto";
1010

1111
option go_package = "github.com/opiproject/opi-api/storage/v1alpha1/gen/go";
12-
import "common.proto";
12+
13+
import "common/common.proto";
1314
import "google/protobuf/empty.proto";
1415
import "google/api/annotations.proto";
1516

storage/v1alpha1/frontend_virtio_scsi.proto

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ option java_multiple_files = true;
99
option java_outer_classname = "FrontendVirtioScsiProto";
1010

1111
option go_package = "github.com/opiproject/opi-api/storage/v1alpha1/gen/go";
12-
import "common.proto";
12+
13+
import "common/common.proto";
1314
import "google/protobuf/empty.proto";
1415
import "google/api/annotations.proto";
1516

File renamed without changes.

0 commit comments

Comments
 (0)