-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
134 lines (99 loc) · 2.48 KB
/
Makefile
File metadata and controls
134 lines (99 loc) · 2.48 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
SHELL := /bin/bash
AGENT_TAG := safir-agent
CLI_TAG := safir-cli
MANAGER_TAG := safir-manager
COMMON_DOTNET_TAG := safir-common-dotnet
COMMON_NODE_TAG := safir-common-node
UI_TAG := safir-ui
GIT_ROOT ?= $(shell pwd)
WORK_DIR := ${GIT_ROOT}/work
DOTNET_ARGS = --nologo
DOCKER_ARGS =
ifeq ($(DOCKER_DEBUG), true)
DOCKER_ARGS += --progress=plain
endif
ifeq ($(DOCKER_NOCACHE), true)
DOCKER_ARGS += --no-cache
endif
all:: build
restore::
dotnet restore
yarn install
build:: restore
dotnet build
yarn build
clean:: clean_dotnet clean_node clean_work compose_down
docker:: agent_docker manager_docker ui_docker cli_docker
compose:: docker_mounts
docker-compose pull && docker-compose build
compose_up:: compose
-docker-compose up
compose_down::
docker-compose down
clean_dotnet::
dotnet clean
# TODO
clean_node::
-rm -rf src/ui/build
clean_work::
-rm -rf ${WORK_DIR}
common_dotnet::
dotnet build src/common/dotnet ${DOTNET_ARGS}
common_dotnet_docker::
cd src && docker build . \
-f common/dotnet/Dockerfile \
-t ${COMMON_DOTNET_TAG} \
${DOCKER_ARGS}
restore_common_node::
cd src/common/node && yarn install
common_node:: restore_common_node
cd src/common/node && yarn build
common_node_docker::
docker build . \
-f src/common/node/Dockerfile \
-t ${COMMON_NODE_TAG} \
${DOCKER_ARGS}
agent::
dotnet build src/agent ${DOTNET_ARGS}
agent_docker:: common_dotnet_docker
cd src && docker build . \
-f agent/Dockerfile \
--build-arg CommonImage=${COMMON_DOTNET_TAG} \
-t ${AGENT_TAG} \
${DOCKER_ARGS}
start_agent_docker:: agent_docker docker_mounts
docker run -it --rm \
--name safir-agent \
-v ${WORK_DIR}/agent/data:/data \
${AGENT_TAG}
cli::
dotnet build src/cli ${DOTNET_ARGS}
cli_docker:: common_dotnet_docker
cd src && docker build . \
-f cli/Dockerfile \
--build-arg CommonImage=${COMMON_DOTNET_TAG} \
-t ${CLI_TAG} \
${DOCKER_ARGS}
manager::
dotnet build src/manager ${DOTNET_ARGS}
manager_docker:: common_dotnet_docker
cd src && docker build . \
-f manager/Dockerfile \
--build-arg CommonImage=${COMMON_DOTNET_TAG} \
-t ${MANAGER_TAG} \
${DOCKER_ARGS}
start_manager_docker:: manager_docker docker_mounts
docker run -it --rm ${MANAGER_TAG}
restore_ui::
cd src/ui && yarn install
ui:: restore_ui
cd src/ui && yarn build
ui_docker::
docker build . \
-f src/ui/Dockerfile \
-t ${UI_TAG} \
${DOCKER_ARGS}
start_ui_docker:: ui_docker
docker run -it --rm -p 8080:80 ${UI_TAG}
docker_mounts::
mkdir -p ${WORK_DIR}/agent/{data,}