-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
162 lines (127 loc) · 5.33 KB
/
Copy pathMakefile
File metadata and controls
162 lines (127 loc) · 5.33 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
.PHONY: help build build-hsm-api test test-unit integration-test bench bench-ci load-test-ci lint fmt clean check-docker check-fabric-bin check-org2 \
setup teardown deploy deploy-cross-border deploy-domestic wait-fabric \
prod-setup prod-up prod-down prod-export-crypto prod-smoke setup-softhsm \
docker-up docker-up-api docker-down docker-dev docker-build docker-prod-build-hsm \
k8s-apply k8s-apply-prod
COMPOSE_FILE := deployments/docker/docker-compose.yaml
COMPOSE_DEV := deployments/docker/docker-compose.dev.yaml
COMPOSE_PROD := deployments/docker/docker-compose.prod.yaml
K8S_DIR := deployments/kubernetes
help:
@echo "Available targets:"
@echo " build Build chaincode, client, and API binaries"
@echo " test Run unit tests with coverage"
@echo " test-unit Alias for test"
@echo " integration-test Run Fabric integration tests (requires test-network)"
@echo " bench Run Go benchmarks"
@echo " bench-ci Short benchmark smoke for CI"
@echo " load-test-ci API load gates for CI"
@echo " lint Run golangci-lint"
@echo " fmt Format code and tidy modules"
@echo " clean Remove build artifacts and coverage output"
@echo " check-docker Verify docker and compose are available"
@echo " check-fabric-bin Verify Fabric peer binary is installed"
@echo " check-org2 Verify Org2 crypto material from test-network"
@echo " setup Start Fabric test-network and create channel"
@echo " teardown Tear down Fabric test-network"
@echo " deploy Deploy chaincode with PDC config"
@echo " deploy-cross-border Deploy with Org1+Org2 endorsement policy"
@echo " deploy-domestic Deploy with Org1-only endorsement policy"
@echo " wait-fabric Wait until peer endpoint is reachable"
@echo " prod-setup Bootstrap Fabric + deploy + export crypto"
@echo " prod-up Start production Redis + API on fabric_test network"
@echo " prod-down Stop production compose stack"
@echo " prod-export-crypto Export MSP material to deployments/fabric/crypto"
@echo " prod-smoke Start prod API stack and run HTTP smoke checks"
@echo " setup-softhsm Initialize SoftHSM token for HSM gateway signing"
@echo " build-hsm-api Build API binary with -tags=hsm"
@echo " docker-up Start Redis (default compose stack)"
@echo " docker-up-api Start Redis + API (requires Fabric on host)"
@echo " docker-down Stop compose stack"
@echo " docker-dev Start dev stack (Redis + API, no profile)"
@echo " docker-build Build API Docker image"
@echo " k8s-apply Apply Kubernetes manifests"
build:
@mkdir -p bin
go build -o bin/chaincode cmd/chaincode/main.go
go build -o bin/client cmd/client/main.go
go build -o bin/api cmd/api/main.go
build-hsm-api:
CGO_ENABLED=1 go build -tags=hsm -o bin/api-hsm cmd/api/main.go
test test-unit:
./scripts/test.sh unit
integration-test:
./scripts/test.sh integration
bench:
go test -bench=. -benchmem ./test/benchmark/...
bench-ci:
go test -bench=. -benchmem -benchtime=50ms -count=1 ./test/benchmark/...
load-test-ci:
LOAD_MIN_RPS=100 LOAD_MAX_P99_MS=200 go test -tags=loadtest -count=1 -timeout=30s ./test/load/...
lint:
golangci-lint run ./...
fmt:
gofmt -w .
go mod tidy
cp configs/api/openapi.yaml internal/api/openapi/spec.yaml
clean:
rm -rf bin coverage.out coverage.html .chaincode-build
check-docker:
@chmod +x scripts/check-docker.sh scripts/compose.sh scripts/lib/docker-path.sh
@./scripts/check-docker.sh
check-fabric-bin:
@chmod +x scripts/check-fabric-bin.sh
@./scripts/check-fabric-bin.sh
check-org2:
@chmod +x scripts/check-org2.sh
@./scripts/check-org2.sh
setup: check-docker
./scripts/setup.sh
teardown:
./scripts/teardown.sh
deploy: check-fabric-bin
@chmod +x scripts/package-chaincode.sh scripts/deploy.sh
./scripts/deploy.sh
deploy-cross-border: check-fabric-bin check-org2
@chmod +x scripts/deploy-cross-border.sh
./scripts/deploy-cross-border.sh
deploy-domestic: check-fabric-bin
@chmod +x scripts/deploy-domestic.sh
./scripts/deploy-domestic.sh
wait-fabric:
./scripts/wait-for-fabric.sh
prod-setup: check-docker
@chmod +x scripts/*.sh scripts/lib/*.sh
./scripts/prod-network.sh
prod-export-crypto:
@chmod +x scripts/export-fabric-crypto.sh
./scripts/export-fabric-crypto.sh
prod-up: check-docker
@chmod +x scripts/prod-up.sh
./scripts/prod-up.sh
prod-down: check-docker
@chmod +x scripts/prod-down.sh
./scripts/prod-down.sh
prod-smoke: check-docker
@chmod +x scripts/prod-smoke.sh scripts/prod-up.sh scripts/compose.sh
./scripts/prod-smoke.sh
setup-softhsm:
@chmod +x scripts/setup-softhsm.sh
./scripts/setup-softhsm.sh
docker-up: check-docker
./scripts/compose.sh -f $(COMPOSE_FILE) up -d
docker-up-api: check-docker
./scripts/compose.sh -f $(COMPOSE_FILE) --profile api up -d --build
docker-down: check-docker
./scripts/compose.sh -f $(COMPOSE_FILE) down
docker-dev: check-docker
./scripts/compose.sh -f $(COMPOSE_DEV) up -d --build
docker-build: check-docker
./scripts/compose.sh -f $(COMPOSE_FILE) build api
docker-prod-build-hsm: check-docker
docker build -f deployments/docker/Dockerfile.api.hsm -t hyperidentity/api:hsm .
k8s-apply:
kubectl apply -f $(K8S_DIR)/
k8s-apply-prod:
kubectl apply -f $(K8S_DIR)/configmap-production.yaml
kubectl apply -f $(K8S_DIR)/