forked from ALT-F4-LLC/vorpal
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
132 lines (109 loc) · 3.52 KB
/
Copy pathmakefile
File metadata and controls
132 lines (109 loc) · 3.52 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
ARCH := $(shell uname -m | tr '[:upper:]' '[:lower:]' | sed 's/arm64/aarch64/')
OS := $(shell uname -s | tr '[:upper:]' '[:lower:]')
OS_TYPE ?= debian
WORK_DIR := $(shell pwd)
CARGO_DIR := $(WORK_DIR)/.cargo
DIST_DIR := $(WORK_DIR)/dist
VENDOR_DIR := $(WORK_DIR)/vendor
VORPAL_ARTIFACT := vorpal
VORPAL_DIR := /var/lib/vorpal
VORPAL_NAMESPACE := library
TARGET ?= debug
CARGO_FLAGS := $(if $(filter $(TARGET),release),--offline --release,)
LIMA_ARCH := $(ARCH)
LIMA_CPUS := 8
LIMA_DISK := 100
LIMA_MEMORY := 8
ifndef VERBOSE
.SILENT:
endif
.DEFAULT_GOAL := build
# Development (without Vorpal)
.cargo:
mkdir -p $(CARGO_DIR)
echo '[source.crates-io]' >> $(CARGO_DIR)/config.toml
echo 'replace-with = "vendored-sources"' >> $(CARGO_DIR)/config.toml
echo '[source.vendored-sources]' >> $(CARGO_DIR)/config.toml
echo 'directory = "$(VENDOR_DIR)"' >> $(CARGO_DIR)/config.toml
clean:
cargo clean
rm -rf $(CARGO_DIR)
rm -rf $(DIST_DIR)
rm -rf $(VENDOR_DIR)
check:
cargo check $(CARGO_FLAGS)
format:
cargo fmt --all --check
lint:
cargo clippy $(CARGO_FLAGS) -- --deny warnings
build:
cargo build $(CARGO_FLAGS)
test:
cargo test $(CARGO_FLAGS)
dist:
mkdir -p $(DIST_DIR)
tar -czvf $(DIST_DIR)/vorpal-$(ARCH)-$(OS).tar.gz \
-C $(WORK_DIR)/target/$(TARGET) \
vorpal
vendor:
cargo vendor --versioned-dirs $(VENDOR_DIR)
# Vorpal
generate:
rm -rfv sdk/go/pkg/api
mkdir -pv sdk/go/pkg/api
protoc \
--go_opt=paths=source_relative \
--go_out=sdk/go/pkg/api \
--go-grpc_opt=paths=source_relative \
--go-grpc_out=sdk/go/pkg/api \
--proto_path=sdk/rust/api \
agent/agent.proto
protoc \
--go_opt=paths=source_relative \
--go_out=sdk/go/pkg/api \
--go-grpc_opt=paths=source_relative \
--go-grpc_out=sdk/go/pkg/api \
--proto_path=sdk/rust/api \
artifact/artifact.proto
protoc \
--go_opt=paths=source_relative \
--go_out=sdk/go/pkg/api \
--go-grpc_opt=paths=source_relative \
--go-grpc_out=sdk/go/pkg/api \
--proto_path=sdk/rust/api \
archive/archive.proto
protoc \
--go_opt=paths=source_relative \
--go_out=sdk/go/pkg/api \
--go-grpc_opt=paths=source_relative \
--go-grpc_out=sdk/go/pkg/api \
--proto_path=sdk/rust/api \
context/context.proto
protoc \
--go_opt=paths=source_relative \
--go_out=sdk/go/pkg/api \
--go-grpc_opt=paths=source_relative \
--go-grpc_out=sdk/go/pkg/api \
--proto_path=sdk/rust/api \
worker/worker.proto
# Development (with Vorpal)
vorpal:
cargo $(CARGO_FLAGS) run --bin "vorpal" -- artifact make --agent "https://localhost:23152" --namespace "$(VORPAL_NAMESPACE)" --registry "https://localhost:23152" --worker "https://localhost:23152" $(VORPAL_FLAGS) $(VORPAL_ARTIFACT)
vorpal-start:
cargo $(CARGO_FLAGS) run --bin "vorpal" -- services start --port "23152" $(VORPAL_FLAGS)
# Lima environment
lima-clean:
limactl stop "vorpal-$(LIMA_ARCH)" || true
limactl delete "vorpal-$(LIMA_ARCH)" || true
lima: lima-clean
cat lima.yaml | limactl create --arch "$(LIMA_ARCH)" --cpus "$(LIMA_CPUS)" --disk "$(LIMA_DISK)" --memory "$(LIMA_MEMORY)" --name "vorpal-$(LIMA_ARCH)" -
limactl start "vorpal-$(LIMA_ARCH)"
limactl shell "vorpal-$(LIMA_ARCH)" $(WORK_DIR)/script/lima.sh install
limactl stop "vorpal-$(LIMA_ARCH)"
limactl start "vorpal-$(LIMA_ARCH)"
lima-sync:
limactl shell "vorpal-$(LIMA_ARCH)" ./script/lima.sh sync
lima-vorpal:
limactl shell "vorpal-$(LIMA_ARCH)" bash -c 'cd ~/vorpal && target/debug/vorpal artifact make $(VORPAL_FLAGS) $(VORPAL_ARTIFACT)'
lima-vorpal-start:
limactl shell "vorpal-$(LIMA_ARCH)" bash -c '~/vorpal/target/debug/vorpal services start $(VORPAL_FLAGS)'