forked from eclipse-pullpiri/pullpiri
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
89 lines (76 loc) · 3.11 KB
/
Makefile
File metadata and controls
89 lines (76 loc) · 3.11 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
# SPDX-FileCopyrightText: Copyright 2024 LG Electronics Inc.
# SPDX-License-Identifier: Apache-2.0
.PHONY: default build
build:
cargo build --manifest-path=src/Cargo.toml
.PHONY: release
release:
cargo build --manifest-path=src/Cargo.toml --release
.PHONY: clean
clean:
cargo clean --manifest-path=src/Cargo.toml
cargo clean --manifest-path=src/agent/nodeagent/Cargo.toml
cargo clean --manifest-path=src/server/rocksdbservice/Cargo.toml
cargo clean --manifest-path=src/tools/Cargo.toml
.PHONY: image
image:
podman build -t localhost/pullpiri:latest -f containers/Dockerfile .
.PHONY: rocksdb-image
rocksdb-image:
podman build -t localhost/pullpiri-rocksdb:latest -f src/server/rocksdbservice/Dockerfile .
.PHONY: nodeagent-bin
nodeagent-bin:
# cargo build --manifest-path=src/agent/nodeagent/Cargo.toml --release --target=aarch64-unknown-linux-musl
cargo build --manifest-path=src/agent/nodeagent/Cargo.toml --release --target=x86_64-unknown-linux-musl
@echo "NodeAgent binary built at:"
@echo " ./target/release/nodeagent"
.PHONY: all-images
all-images: image rocksdb-image
@echo "Built all container images:"
@echo " - localhost/pullpiri:latest (main services)"
@echo " - localhost/pullpiri-rocksdb:latest (RocksDB service)"
.PHONY: setup-shared-rocksdb
setup-shared-rocksdb:
-mkdir -p /etc/piccolo/pullpiri_shared_rocksdb
-chown 1001:1001 /etc/piccolo/pullpiri_shared_rocksdb
.PHONY: install
install: setup-shared-rocksdb
-mkdir -p /etc/piccolo
-cp -r ./src/settings.yaml /etc/piccolo/
-cp -r ./doc/scripts/version.txt /etc/piccolo/
-cp -r ./doc/scripts/update_server_ip.sh /etc/piccolo/
-cp -r ./containers/piccolo-*.* /etc/piccolo/
-./containers/piccolo-server.sh dev
-./containers/piccolo-player.sh dev
.PHONY: uninstall
uninstall:
-podman pod stop -t 0 piccolo-player
-podman pod rm -f --ignore piccolo-player
-podman pod stop -t 0 piccolo-server
-podman pod rm -f --ignore piccolo-server
-cp -r /etc/piccolo/nodeagent.yaml /etc/nodeagent.yaml.bak
-rm -rf /etc/piccolo/*
-mv /etc/nodeagent.yaml.bak /etc/piccolo/nodeagent.yaml
# DO NOT USE THIS COMMAND IN PRODUCTION
#.PHONY: rocksdb-image
#rocksdb-image:
# docker buildx create --name container-builder --driver docker-container --bootstrap --use
# docker run --privileged --rm tonistiigi/binfmt --install all
# docker buildx build --push --platform linux/amd64,linux/arm64 -t ghcr.io/mco-piccolo/pullpiri-rocksdb:v11.18.0 -f src/server/rocksdbservice/Dockerfile .
.PHONY: tools
tools:
cargo build --manifest-path=src/tools/Cargo.toml --release
@echo ""
@echo "=== Data Inspection ==="
@echo "make build-inspector - Build RocksDB Inspector tool"
@echo "make inspect-rocksdb - Inspect all RocksDB data"
@echo "make verify-helloworld-data - Verify helloworld test data"
.PHONY: test-rocksdb-service
test-rocksdb-service:
@echo "Testing gRPC RocksDB Service..."
@echo "Service should be running on localhost:47007"
@echo "Use grpcurl to test the service:"
@echo " grpcurl -plaintext localhost:47007 rocksdbservice.RocksDbService/Health"
@echo ""
@echo "Building and running a simple test..."
@cd src/server/rocksdbservice && cargo run -- --help