-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
44 lines (36 loc) · 1.22 KB
/
Copy pathMakefile
File metadata and controls
44 lines (36 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
TRUSTEE_VERSION ?= $(shell cat TRUSTEE_VERSION 2>/dev/null || echo main)
TRUSTEE_RAW := https://raw.githubusercontent.com/confidential-containers/trustee
PROTO_URL := $(TRUSTEE_RAW)/$(TRUSTEE_VERSION)/protos/plugin.proto
PROTO_DIR := proto
STUB_DIR := src/kbs_plugin_sdk/plugin
# Use local venv if present, otherwise fall back to system Python.
ifneq ($(wildcard venv/bin/python3),)
PYTHON := venv/bin/python3
PIP := venv/bin/pip3
PYTEST := venv/bin/pytest
else
PYTHON := python3
PIP := pip3
PYTEST := pytest
endif
.PHONY: proto dev install test clean venv
venv:
python3 -m venv venv
venv/bin/pip3 install --upgrade pip
proto:
mkdir -p $(PROTO_DIR) $(STUB_DIR)
curl -fsSL $(PROTO_URL) -o $(PROTO_DIR)/plugin.proto
$(PYTHON) -m grpc_tools.protoc \
-I$(PROTO_DIR) \
--python_out=$(STUB_DIR) \
--grpc_python_out=$(STUB_DIR) \
$(PROTO_DIR)/plugin.proto
sed -i.bak 's/^import plugin_pb2 as plugin__pb2/from . import plugin_pb2 as plugin__pb2/' $(STUB_DIR)/plugin_pb2_grpc.py && rm -f $(STUB_DIR)/plugin_pb2_grpc.py.bak
dev:
$(PIP) install -e ".[dev]"
install:
$(PIP) install .
test:
$(PYTEST) tests/ -v
clean:
rm -rf $(PROTO_DIR) $(STUB_DIR)/plugin_pb2.py $(STUB_DIR)/plugin_pb2_grpc.py