Skip to content

Commit 22bbfbd

Browse files
authored
Merge pull request #159 from andkononykhin/issue-99-deploy-scripts-migration
[issue 99] deploy scripts migration
2 parents b36acf0 + 0f74847 commit 22bbfbd

12 files changed

+364
-151
lines changed

Makefile

+10-56
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ ifndef DCL_COMMIT
88
DCL_COMMIT := $(shell git log -1 --format='%H')
99
endif
1010

11-
UID := $(shell id -u)
12-
#GID := $(shell id -g)
13-
1411
ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=DcLedger \
1512
-X github.com/cosmos/cosmos-sdk/version.ServerName=dcld \
1613
-X github.com/cosmos/cosmos-sdk/version.Version=$(DCL_VERSION) \
@@ -19,18 +16,16 @@ ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=DcLedger \
1916
BUILD_FLAGS := -ldflags '$(ldflags)'
2017
OUTPUT_DIR ?= build
2118

22-
LOCALNET_DIR ?= .localnet
23-
LOCALNET_DOCKER_NETWORK = "distributed-compliance-ledger_localnet"
24-
25-
remove_containers = $(if $(1),docker rm -f $(1),true)
26-
localnet_containers = $(shell docker ps --format '{{.ID}}' --filter network=$(LOCALNET_DOCKER_NETWORK))
27-
clean_network = $(call remove_containers,$(call localnet_containers))
28-
2919
LICENSE_TYPE = "apache"
3020
COPYRIGHT_YEAR = "2020"
3121
COPYRIGHT_HOLDER = "DSR Corporation"
3222
LICENSED_FILES = $(shell find . -type f -not -path '*/.*' -not -name '*.md' -not -name 'requirements.txt')
3323

24+
MK_TEST = "Makefile.test"
25+
LOCALNET_TARGETS = image localnet_init localnet_start localnet_stop localnet_clean localnet_export localnet_reset localnet_rebuild
26+
TEST_DEPLOY_TARGETS = test_deploy_image test_deploy_env_build test_deploy_env_clean
27+
TEST_TARGETS= ${LOCALNET_TARGETS} ${TEST_DEPLOY_TARGETS}
28+
3429
all: install
3530

3631
build: go.sum
@@ -58,50 +53,9 @@ license-check:
5853
clean:
5954
rm -rf $(OUTPUT_DIR)
6055

61-
# Docker
62-
63-
image:
64-
docker build -t dcledger --build-arg TEST_UID=${UID} \
65-
--build-arg DCL_VERSION=${DCL_VERSION} --build-arg DCL_COMMIT=${DCL_COMMIT} .
66-
67-
localnet_init:
68-
/bin/bash ./genlocalnetconfig.sh
69-
70-
localnet_start:
71-
@if [ -d "${LOCALNET_DIR}/observer0" ]; then\
72-
docker-compose --profile observers up -d;\
73-
else\
74-
docker-compose up -d;\
75-
fi
76-
77-
localnet_stop:
78-
docker-compose down || ($(call clean_network) && docker-compose down)
79-
80-
localnet_export: localnet_stop
81-
docker-compose run node0 dcld export --for-zero-height >genesis.export.node0.json
82-
docker-compose run node1 dcld export --for-zero-height >genesis.export.node1.json
83-
docker-compose run node2 dcld export --for-zero-height >genesis.export.node2.json
84-
docker-compose run node3 dcld export --for-zero-height >genesis.export.node3.json
85-
@if [ -d "${LOCALNET_DIR}/observer0" ]; then\
86-
docker-compose run observer0 dcld export --for-zero-height >genesis.export.observer0.json;\
87-
fi
88-
89-
90-
localnet_reset: localnet_stop
91-
docker-compose run node0 dcld unsafe-reset-all
92-
docker-compose run node1 dcld unsafe-reset-all
93-
docker-compose run node2 dcld unsafe-reset-all
94-
docker-compose run node3 dcld unsafe-reset-all
95-
@if [ -d "${LOCALNET_DIR}/observer0" ]; then\
96-
docker-compose run observer0 dcld unsafe-reset-all;\
97-
fi
98-
99-
localnet_clean: localnet_stop
100-
rm -rf $(LOCALNET_DIR)
101-
rm -rf $(HOME)/.dcl
102-
103-
104-
localnet_rebuild: localnet_clean localnet_init
105-
56+
${TEST_TARGETS}:
57+
make -f ${MK_TEST} $@
10658

107-
.PHONY: all build install test lint clean image localnet_init localnet_start localnet_stop localnet_clean localnet_export localnet_reset license license-check localnet_rebuild
59+
.PHONY: all build install test lint clean \
60+
license license-check \
61+
${TEST_TARGETS}

Makefile.test

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
ifndef DCL_VERSION
2+
DCL_VERSION := $(shell echo $(shell git describe --tags) | sed 's/^v//')
3+
endif
4+
5+
ifndef DCL_COMMIT
6+
DCL_COMMIT := $(shell git log -1 --format='%H')
7+
endif
8+
9+
UID := $(shell id -u)
10+
#GID := $(shell id -g)
11+
12+
LOCALNET_DIR ?= .localnet
13+
LOCALNET_DOCKER_NETWORK = "distributed-compliance-ledger_localnet"
14+
15+
IMAGE_NAME = "dcledger"
16+
17+
remove_containers = $(if $(1),docker rm -f $(1),true)
18+
localnet_containers = $(shell docker ps --format '{{.ID}}' --filter network=$(LOCALNET_DOCKER_NETWORK))
19+
clean_network = $(call remove_containers,$(call localnet_containers))
20+
21+
# test deploy vars
22+
TEST_DEPLOY_IMAGE_NAME = "dcledger_deploy"
23+
TEST_DEPLOY_NODE = "test_deploy_node"
24+
25+
image:
26+
docker build -t ${IMAGE_NAME} --build-arg TEST_UID=${UID} \
27+
--build-arg DCL_VERSION=${DCL_VERSION} --build-arg DCL_COMMIT=${DCL_COMMIT} .
28+
29+
localnet_init:
30+
/bin/bash ./genlocalnetconfig.sh
31+
32+
localnet_start:
33+
@if [ -d "${LOCALNET_DIR}/observer0" ]; then\
34+
docker-compose --profile observers up -d;\
35+
else\
36+
docker-compose up -d;\
37+
fi
38+
39+
localnet_stop:
40+
docker-compose down || ($(call clean_network) && docker-compose down)
41+
42+
localnet_export: localnet_stop
43+
docker-compose run node0 dcld export --for-zero-height >genesis.export.node0.json
44+
docker-compose run node1 dcld export --for-zero-height >genesis.export.node1.json
45+
docker-compose run node2 dcld export --for-zero-height >genesis.export.node2.json
46+
docker-compose run node3 dcld export --for-zero-height >genesis.export.node3.json
47+
@if [ -d "${LOCALNET_DIR}/observer0" ]; then\
48+
docker-compose run observer0 dcld export --for-zero-height >genesis.export.observer0.json;\
49+
fi
50+
51+
localnet_reset: localnet_stop
52+
docker-compose run node0 dcld unsafe-reset-all
53+
docker-compose run node1 dcld unsafe-reset-all
54+
docker-compose run node2 dcld unsafe-reset-all
55+
docker-compose run node3 dcld unsafe-reset-all
56+
@if [ -d "${LOCALNET_DIR}/observer0" ]; then\
57+
docker-compose run observer0 dcld unsafe-reset-all;\
58+
fi
59+
60+
localnet_clean: localnet_stop
61+
rm -rf $(LOCALNET_DIR)
62+
rm -rf $(HOME)/.dcl
63+
64+
65+
localnet_rebuild: localnet_clean localnet_init
66+
67+
68+
test_deploy_image: integration_tests/deploy/Dockerfile
69+
cat $< | docker build -t ${TEST_DEPLOY_IMAGE_NAME} -
70+
71+
test_deploy_env_build: image test_deploy_image
72+
docker run -d --name ${TEST_DEPLOY_NODE} --tmpfs /tmp --tmpfs /run --tmpfs /run/lock \
73+
-v /sys/fs/cgroup:/sys/fs/cgroup:ro --network ${LOCALNET_DOCKER_NETWORK} ${TEST_DEPLOY_IMAGE_NAME}
74+
75+
test_deploy_env_clean: localnet_reset
76+
docker rm -f ${TEST_DEPLOY_NODE}
77+
78+
.PHONY: localnet_init localnet_start localnet_stop localnet_clean localnet_export \
79+
localnet_reset localnet_rebuild \
80+
test_deploy_image test_deploy_env_build test_deploy_env_clean

README-DEV.md

+20-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ It's recommended to develop and deploy the App on Ubuntu 18.04 or Ubuntu 20.04.
3232
3333
3434
2. Run unit tests
35-
```
35+
```bash
3636
make test
3737
```
3838
@@ -42,10 +42,28 @@ It's recommended to develop and deploy the App on Ubuntu 18.04 or Ubuntu 20.04.
4242
REST integration tests need to have a backend running (CLI in REST mode).
4343
4444
The following script will start all necessary things and run the tests:
45-
```
45+
```bash
4646
./integration_tests/ci/run-all.sh
4747
```
4848
49+
If you want to run a particular test you may:
50+
51+
```bash
52+
make localnet_rebuild localnet_start
53+
54+
bash <path-to-shell-script> # to run a cli test
55+
# OR
56+
go test <path-to-go-test-file> # to run REST or gRPC go test
57+
```
58+
59+
4. Run deployment test
60+
61+
The deployment test verifies deployment steps described in [docs/running-node.md](./docs/running-node.md).
62+
63+
```bash
64+
./integration_tests/deploy/test_deploy.sh
65+
```
66+
4967
5068
## Run local pool
5169
The easiest way to run a local pool is to start it in Docker:

0 commit comments

Comments
 (0)