1- [env ]
2- NETWORK_NAME = " smoke"
3- CMT_CONTAINER_NAME = " smoke-cometbft"
4- FM_CONTAINER_NAME = " smoke-fendermint"
5- ETHAPI_CONTAINER_NAME = " smoke-ethapi"
6- CMT_DOCKER_IMAGE = " cometbft/cometbft:v0.37.x"
7- FM_DOCKER_IMAGE = " fendermint:latest"
8- TEST_DATA_DIR = " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/fendermint/testing/smoke-test/test-data"
9- TEST_SCRIPTS_DIR = " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/fendermint/testing/smoke-test/scripts"
10- ACTORS_BUNDLE = " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/../builtin-actors/output/bundle.car"
11- CMT_HOST_PORT = 26657
12- ETHAPI_HOST_PORT = 8545
13- # If this wasn't present, any wait task is skipped.
14- CARGO_MAKE_WAIT_MILLISECONDS = 5000
15- # This wait time seems to work locally.
16- CMT_WAIT_MILLIS = 10000
17- # Keep example logs to a minimum.
18- VERBOSITY = " "
19-
20- [env .ci ]
21- CMT_WAIT_MILLIS = 20000
22- # Help debug any issues with simplecoin by logging requests and responses.
23- VERBOSITY = " --verbose"
24-
251# smoke-test infrastructure:
262# cargo install cargo-make
273#
@@ -34,53 +10,27 @@ VERBOSITY = "--verbose"
3410# docker logs smoke-ethapi
3511# cargo make teardown
3612
37- [tasks .default ]
38- clear = true
39- run_task = { name = [
40- " setup" ,
41- " test" ,
42- ], fork = true , cleanup_task = " teardown" }
13+ extend = [
14+ { path = " ../Makefile/common.toml" },
15+ ]
4316
44- # Waiting before starting the Eth API for the CometBFT websocket to start listening.
45- [tasks .setup ]
46- dependencies = [
47- " test-data-dir" ,
48- " network-create" ,
49- " cometbft-init" ,
50- " fendermint-init" ,
51- " fendermint-start" ,
52- " cometbft-start" ,
53- " ethapi-start" ,
54- " cometbft-wait" ,
55- " fendermint-logs" ,
56- " cometbft-logs" ,
57- " ethapi-logs" ,
17+ env_files = [
18+ { path = " ./smoke.env" },
19+ { path = " ../Makefile/common.env" },
20+ { path = " ../Makefile/ci.env" , profile = " ci" },
5821]
5922
6023[tasks .test ]
6124clear = true
6225dependencies = [" simplecoin-example" , " ethapi-example" ]
6326
64- [tasks .teardown ]
65- # `dependencies` doesn't seem to work with `cleanup_task`.
66- run_task = { name = [
67- " cometbft-stop" ,
68- " cometbft-rm" ,
69- " fendermint-stop" ,
70- " fendermint-rm" ,
71- " ethapi-stop" ,
72- " ethapi-rm" ,
73- " network-rm" ,
74- " test-data-dir-rm" ,
75- ] }
76-
7727
7828[tasks .simplecoin-example ]
7929# Using --release in the hope that it can reuse artifacts compiled earlier for the docker build.
8030script = """
8131cd ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}
8232cargo run -p fendermint_rpc --release --example simplecoin -- \
83- --secret-key fendermint/testing/smoke-test/test-data/fendermint/ keys/alice.sk \
33+ --secret-key fendermint/testing/smoke-test/test-data/keys/alice.sk \
8434 ${VERBOSITY}
8535"""
8636
@@ -89,166 +39,6 @@ cargo run -p fendermint_rpc --release --example simplecoin -- \
8939script = """
9040cd ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}
9141cargo run -p fendermint_eth_api --release --example ethers -- \
92- --secret-key-from fendermint/testing/smoke-test/test-data/fendermint/keys/emily.sk \
93- --secret-key-to fendermint/testing/smoke-test/test-data/fendermint/keys/eric.sk
94- """
95-
96-
97- [tasks .test-data-dir ]
98- script = """
99- mkdir -p ${TEST_DATA_DIR}/fendermint;
100- mkdir -p ${TEST_DATA_DIR}/cometbft;
101- """
102-
103- [tasks .test-data-dir-rm ]
104- script = """
105- rm -rf ${TEST_DATA_DIR}
42+ --secret-key-from fendermint/testing/smoke-test/test-data/keys/emily.sk \
43+ --secret-key-to fendermint/testing/smoke-test/test-data/keys/eric.sk
10644"""
107-
108-
109- [tasks .cometbft-pull ]
110- command = " docker"
111- args = [" pull" , " ${CMT_DOCKER_IMAGE}" ]
112-
113- [tasks .cometbft-init ]
114- extend = " cometbft-run"
115- env = { "CMD" = " init" , "FLAGS" = " -a STDOUT -a STDERR --rm" }
116-
117- [tasks .cometbft-start ]
118- extend = " cometbft-run"
119- env = { "CMD" = " start" , "FLAGS" = " -d" }
120-
121- [tasks .cometbft-wait ]
122- extend = " wait"
123- env = { "CARGO_MAKE_WAIT_MILLISECONDS" = " ${CMT_WAIT_MILLIS}" }
124-
125- [tasks .cometbft-run ]
126- script = """
127- docker run \
128- ${FLAGS} \
129- --name ${CMT_CONTAINER_NAME} \
130- --user $(id -u) \
131- --network ${NETWORK_NAME} \
132- --publish ${CMT_HOST_PORT}:26657 \
133- --volume ${TEST_DATA_DIR}/cometbft:/cometbft \
134- --env CMT_PROXY_APP=tcp://${FM_CONTAINER_NAME}:26658 \
135- --env CMT_PEX=false \
136- --env CMT_MAX_SUBSCRIPTION_CLIENTS=10 \
137- --env CMT_MAX_SUBSCRIPTIONS_PER_CLIENT=1000 \
138- ${CMT_DOCKER_IMAGE} \
139- ${CMD}
140- """
141- dependencies = [" cometbft-pull" , " test-data-dir" , " network-create" ]
142-
143-
144- [tasks .fendermint-init ]
145- extend = " fendermint-run"
146- env = { "ENTRY" = " /scripts/init.sh" , "FLAGS" = " -a STDOUT -a STDERR --rm" }
147-
148- [tasks .fendermint-start ]
149- extend = " fendermint-run"
150- env = { "ENTRY" = " fendermint" , "CMD" = " run" , "FLAGS" = " -d" }
151-
152- [tasks .fendermint-run ]
153- script = """
154- docker run \
155- ${FLAGS} \
156- --name ${FM_CONTAINER_NAME} \
157- --init \
158- --user $(id -u) \
159- --network ${NETWORK_NAME} \
160- --volume ${TEST_DATA_DIR}:/data \
161- --volume ${TEST_SCRIPTS_DIR}:/scripts \
162- --env RUST_BACKTRACE=1 \
163- --env FM_DATA_DIR=/data/fendermint/data \
164- --env FM_CHAIN_NAME=${NETWORK_NAME} \
165- --env TENDERMINT_RPC_URL=http://${CMT_CONTAINER_NAME}:26657 \
166- --env LOG_LEVEL=info \
167- --entrypoint ${ENTRY} \
168- ${FM_DOCKER_IMAGE} \
169- ${CMD}
170- """
171- dependencies = [" test-data-dir" , " network-create" ]
172-
173- [tasks .ethapi-start ]
174- extend = " ethapi-run"
175- env = { "CMD" = " eth run" , "FLAGS" = " -d" }
176-
177-
178- [tasks .ethapi-run ]
179- script = """
180- docker run \
181- ${FLAGS} \
182- --name ${ETHAPI_CONTAINER_NAME} \
183- --init \
184- --user $(id -u) \
185- --network ${NETWORK_NAME} \
186- --publish ${ETHAPI_HOST_PORT}:8545 \
187- --env TENDERMINT_WS_URL=ws://${CMT_CONTAINER_NAME}:26657/websocket \
188- --env LOG_LEVEL=debug \
189- --env RUST_BACKTRACE=1 \
190- ${FM_DOCKER_IMAGE} \
191- ${CMD}
192- """
193- dependencies = [" network-create" ]
194-
195- [tasks .network-create ]
196- command = " docker"
197- args = [" network" , " create" , " ${NETWORK_NAME}" ]
198- ignore_errors = true
199-
200- [tasks .network-rm ]
201- command = " docker"
202- args = [" network" , " rm" , " ${NETWORK_NAME}" ]
203- ignore_errors = true
204-
205- [tasks .cometbft-rm ]
206- extend = " docker-rm"
207- env = { "CONTAINER_NAME" = " ${CMT_CONTAINER_NAME}" }
208-
209- [tasks .cometbft-stop ]
210- extend = " docker-stop"
211- env = { "CONTAINER_NAME" = " ${CMT_CONTAINER_NAME}" }
212-
213- [tasks .fendermint-rm ]
214- extend = " docker-rm"
215- env = { "CONTAINER_NAME" = " ${FM_CONTAINER_NAME}" }
216-
217- [tasks .fendermint-stop ]
218- extend = " docker-stop"
219- env = { "CONTAINER_NAME" = " ${FM_CONTAINER_NAME}" }
220-
221- [tasks .ethapi-rm ]
222- extend = " docker-rm"
223- env = { "CONTAINER_NAME" = " ${ETHAPI_CONTAINER_NAME}" }
224-
225- [tasks .ethapi-stop ]
226- extend = " docker-stop"
227- env = { "CONTAINER_NAME" = " ${ETHAPI_CONTAINER_NAME}" }
228-
229- [tasks .ethapi-logs ]
230- extend = " docker-logs"
231- env = { "CONTAINER_NAME" = " ${ETHAPI_CONTAINER_NAME}" }
232-
233- [tasks .fendermint-logs ]
234- extend = " docker-logs"
235- env = { "CONTAINER_NAME" = " ${FM_CONTAINER_NAME}" }
236-
237- [tasks .cometbft-logs ]
238- extend = " docker-logs"
239- env = { "CONTAINER_NAME" = " ${CMT_CONTAINER_NAME}" }
240-
241- [tasks .docker-stop ]
242- command = " docker"
243- args = [" stop" , " ${CONTAINER_NAME}" ]
244- ignore_errors = true
245-
246- [tasks .docker-rm ]
247- command = " docker"
248- args = [" rm" , " --force" , " ${CONTAINER_NAME}" ]
249- ignore_errors = true
250-
251- [tasks .docker-logs ]
252- command = " docker"
253- args = [" logs" , " ${CONTAINER_NAME}" ]
254- ignore_errors = true
0 commit comments