This repository has been archived by the owner on Apr 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathMakefile
135 lines (112 loc) · 5.01 KB
/
Makefile
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
# Copyright SecureKey Technologies Inc.
#
# SPDX-License-Identifier: Apache-2.0
GOBIN_PATH =$(abspath .)/.build/bin
LINT_VERSION ?=v1.44.2
MOCK_VERSION ?=v1.6.0
DOCKER_OUTPUT_NS ?=ghcr.io
GATEKEEPER_IMAGE_NAME ?=trustbloc/gatekeeper
COMPARATOR_REST_IMAGE_NAME ?= trustbloc/comparator-server
CONFIDENTIAL_STORAGE_HUB_IMAGE_NAME ?= trustbloc/hub-confidential-storage
VAULT_SERVER_IMAGE_NAME ?= trustbloc/vault-server
ALPINE_VER ?= 3.14
GO_VER ?= 1.18
GATE_KEEPER_PATH=cmd/gatekeeper
COMPARATOR_REST_PATH=cmd/comparator-rest
CONFIDENTIAL_STORAGE_HUB_PATH=cmd/confidential-storage-hub
SWAGGER_DOCKER_IMG =quay.io/goswagger/swagger
SWAGGER_VERSION =v0.29.0
SWAGGER_DIR ="./test/bdd/fixtures/spec"
SWAGGER_OUTPUT =$(SWAGGER_DIR)"/openAPI.yml"
OS := $(shell uname)
ifeq ($(OS),$(filter $(OS),Darwin Linux))
PATH:=$(PATH):$(GOBIN_PATH)
else
PATH:=$(PATH);$(subst /,\\,$(GOBIN_PATH))
endif
.PHONY: all
all: clean checks unit-test bdd-test
.PHONY: checks
checks: license lint
.PHONY: license
license:
@scripts/check_license.sh
.PHONY: mocks
mocks:
@GOBIN=$(GOBIN_PATH) go install github.com/golang/mock/mockgen@$(MOCK_VERSION)
@go generate ./...
.PHONY: lint
lint: mocks
@GOBIN=$(GOBIN_PATH) go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(LINT_VERSION)
@$(GOBIN_PATH)/golangci-lint run
@cd cmd/gatekeeper && $(GOBIN_PATH)/golangci-lint run -c ../../.golangci.yml
@cd test/bdd && $(GOBIN_PATH)/golangci-lint run -c ../../.golangci.yml
.PHONY: unit-test
unit-test: mocks
@scripts/check_unit.sh
.PHONY: bdd-test
bdd-test: generate-test-keys gatekeeper-docker comparator-rest-docker vault-server-docker confidential-storage-hub-docker
@cd test/bdd && GATEKEEPER_HOST=localhost:9014 ORB_DOMAIN=testnet.orb.local go test -count=1 -v -cover . -p 1 -timeout=10m -race
# TODO (#68): frapsoft/openssl only has an amd64 version. While this does work under amd64 and arm64 Mac OS currently,
# we should add an arm64 version for systems that can only run arm64 code.
.PHONY: generate-test-keys
generate-test-keys:
@mkdir -p ./test/bdd/fixtures/keys/tls
@docker run -i --platform linux/amd64 --rm \
-v $(abspath .):/opt/workspace/ace \
--entrypoint "/opt/workspace/ace/scripts/generate_test_keys.sh" \
frapsoft/openssl
.PHONY: generate-comparator-client
generate-comparator-client:
@echo "Generating comparator client"
@MODELS_PATH=pkg/restapi/comparator/operation CLIENT_PATH=pkg/client/comparator SPEC_LOC=${COMPARATOR_REST_PATH}/docs/openapi.yaml \
DOCKER_IMAGE=$(SWAGGER_DOCKER_IMG) DOCKER_IMAGE_VERSION=$(SWAGGER_VERSION) \
scripts/generate_client.sh
.PHONY: generate-csh-client
generate-csh-client:
@echo "Generating confidential-storage-hub client"
@MODELS_PATH=pkg/restapi/csh/operation CLIENT_PATH=pkg/client/csh SPEC_LOC=${CONFIDENTIAL_STORAGE_HUB_PATH}/docs/openapi.yaml \
DOCKER_IMAGE=$(SWAGGER_DOCKER_IMG) DOCKER_IMAGE_VERSION=$(SWAGGER_VERSION) \
scripts/generate_client.sh
.PHONY: gatekeeper-docker
gatekeeper-docker:
@echo "Building Gatekeeper docker image"
@docker build -f ./images/gatekeeper/Dockerfile --no-cache -t $(DOCKER_OUTPUT_NS)/$(GATEKEEPER_IMAGE_NAME):latest \
--build-arg GO_VER=$(GO_VER) \
--build-arg ALPINE_VER=$(ALPINE_VER) .
.PHONY: vault-server-docker
vault-server-docker:
@echo "Building vault-server docker image"
@docker build -f ./images/vault-server/Dockerfile --no-cache -t $(DOCKER_OUTPUT_NS)/$(VAULT_SERVER_IMAGE_NAME):latest \
--build-arg GO_VER=$(GO_VER) \
--build-arg ALPINE_VER=$(ALPINE_VER) .
.PHONY: comparator-rest-docker
comparator-rest-docker:
@echo "Building comparator rest docker image"
@docker build -f ./images/comparator-rest/Dockerfile --no-cache -t $(DOCKER_OUTPUT_NS)/$(COMPARATOR_REST_IMAGE_NAME):latest \
--build-arg GO_VER=$(GO_VER) \
--build-arg ALPINE_VER=$(ALPINE_VER) .
.PHONY: confidential-storage-hub-docker
confidential-storage-hub-docker:
@echo "Building confidential-storage-hub docker image"
@docker build -f ./images/confidential-storage-hub/Dockerfile --no-cache -t ${DOCKER_OUTPUT_NS}/${CONFIDENTIAL_STORAGE_HUB_IMAGE_NAME}:latest \
--build-arg GO_VER=${GO_VER} \
--build-arg ALPINE_VER=${ALPINE_VER} .
.PHONY: open-api-spec
open-api-spec:
@GOBIN=$(GOBIN_PATH) go install github.com/go-swagger/go-swagger/cmd/swagger@$(SWAGGER_VERSION)
@echo "Generating Open API spec"
@mkdir $(SWAGGER_DIR)
@$(GOBIN_PATH)/swagger generate spec -w ./cmd/gatekeeper -x github.com/trustbloc/orb -x github.com/trustbloc/vct \
-x github.com/trustbloc/ace/pkg/restapi/vault -x github.com/trustbloc/ace/pkg/client -o $(SWAGGER_OUTPUT)
@echo "Validating generated spec"
@$(GOBIN_PATH)/swagger validate $(SWAGGER_OUTPUT)
.PHONY: open-api-demo
open-api-demo: clean open-api-spec generate-test-keys gatekeeper-docker comparator-rest-docker vault-server-docker confidential-storage-hub-docker
@echo "Running Open API demo on http://localhost:8089/openapi"
@docker-compose -f test/bdd/fixtures/docker-compose.yml up --force-recreate -d gatekeeper-openapi.trustbloc.local
.PHONY: clean
clean:
@rm -rf ./build
@rm -rf coverage*.out
@rm -rf $(SWAGGER_DIR)