Skip to content

Commit 5c1039b

Browse files
author
Lucius
committed
Changed pre-generated block logs into service
To be squashed
1 parent 0d4448f commit 5c1039b

File tree

5 files changed

+51
-97
lines changed

5 files changed

+51
-97
lines changed

.gitlab-ci.yaml

+33-82
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,14 @@ plugin_test:
420420
LOG_FILE: $CI_JOB_NAME.log
421421
command: ["--replay-blockchain", "--stop-at-block=5000000"]
422422

423+
.test-block-log-service: &test-block-log-service
424+
- name: $TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE
425+
alias: test-block-log-server
426+
427+
.universal-block-log-service: &universal-block-log-service
428+
- name: $UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE
429+
alias: universal-block-log-server
430+
423431
.python_based:
424432
image: "$CI_REGISTRY_IMAGE/ci-base-image$TEST_IMAGE_TAG"
425433
extends:
@@ -668,18 +676,23 @@ test_tools_tests:
668676
extends: .test_tools_based
669677
needs:
670678
- !reference [.test_tools_based, needs]
671-
- job: copy_testing_block_logs_to_cache
679+
- job: generate_testing_block_logs_and_save_image
672680
variables:
681+
NODE_ADDRESS: "test-block-log-server:80"
673682
PYTEST_TIMEOUT_MINUTES: 30
674683
PYTEST_JUNIT_REPORT: $CI_PROJECT_DIR/tests/python/hive-local-tools/test-tools/tests/report.xml
675-
TESTING_BLOCK_LOGS_DESTINATION: $CI_PROJECT_DIR/tests/python/hive-local-tools/test-tools/tests/testing_block_logs
684+
TESTING_BLOCK_LOGS_DESTINATION: $CI_PROJECT_DIR/tests/python/hive-local-tools/test-tools/tests
685+
services:
686+
- *test-block-log-service
676687
script:
677-
- cp -r $TESTING_BLOCK_LOGS_CACHE_DIR/* $TESTING_BLOCK_LOGS_DESTINATION
688+
- test -n "$TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE"
689+
- curl -I ${NODE_ADDRESS} || (echo "error connecting to service test-block-log-server" && false)
690+
- wget -nH -np -P $TESTING_BLOCK_LOGS_DESTINATION -r -R "index.html*" --cut-dirs=1 test-block-log-server:80/testing_block_logs/
678691
- cd $CI_PROJECT_DIR/tests/python/hive-local-tools/test-tools/tests
679692
- pip install local-tools/
680693
- !reference [.run-pytest, script]
681694
tags:
682-
- data-cache-storage
695+
- public-runner-docker
683696

684697
rc_direct_delegations_tests:
685698
stage: test
@@ -1206,43 +1219,6 @@ generate_testing_block_logs_and_save_image:
12061219
- public-runner-docker
12071220
- hived-for-tests
12081221

1209-
copy_testing_block_logs_to_cache:
1210-
stage: build
1211-
extends: .docker_image_builder_job
1212-
needs:
1213-
- job: generate_testing_block_logs_and_save_image
1214-
artifacts: true
1215-
variables:
1216-
TESTING_BLOCK_LOGS_CACHE_DIR: "/cache/testing_block_logs_${TESTING_BLOCK_LOG_LATEST_COMMIT_SHORT_SHA}"
1217-
script:
1218-
- echo $TESTING_BLOCK_LOGS_CACHE_DIR
1219-
- echo "TESTING_BLOCK_LOGS_CACHE_DIR=$TESTING_BLOCK_LOGS_CACHE_DIR" > $CI_PROJECT_DIR/testing_block_log_cache_dir.env
1220-
- |
1221-
if [ -d "$TESTING_BLOCK_LOGS_CACHE_DIR" ]; then
1222-
echo "Directory $TESTING_BLOCK_LOGS_CACHE_DIR exists. Skipping copy from image process..."
1223-
else
1224-
echo "Start copy testing block logs from image - $TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE"
1225-
mkdir -p $TESTING_BLOCK_LOGS_CACHE_DIR && cd $TESTING_BLOCK_LOGS_CACHE_DIR
1226-
echo "Start copy block_logs from - $TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE"
1227-
docker pull $TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE
1228-
$CI_PROJECT_DIR/scripts/ci-helpers/export-data-from-docker-image.sh $TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE $TESTING_BLOCK_LOGS_CACHE_DIR --image-path=/
1229-
checksum_from_image=$(docker inspect --format='{{ index .Config.Labels "testing_block_logs_checksum" }}' $TESTING_BLOCK_LOG_LATEST_VERSION_IMAGE)
1230-
echo "Checksum from image: $checksum_from_image"
1231-
checksum_after_copy=$(find $TESTING_BLOCK_LOGS_CACHE_DIR -type f | sort | xargs cat | md5sum |cut -d ' ' -f 1)
1232-
echo "Checksum after copy: $checksum_after_copy"
1233-
if [[ "$checksum_from_image" != "$checksum_after_copy" ]]; then
1234-
echo "Checksum mismatch detected! The checksum from the container does not match the checksum after copying."
1235-
exit 1
1236-
fi
1237-
fi
1238-
- tree $TESTING_BLOCK_LOGS_CACHE_DIR
1239-
artifacts:
1240-
reports:
1241-
dotenv:
1242-
- testing_block_log_cache_dir.env
1243-
tags:
1244-
- data-cache-storage
1245-
12461222
generate_universal_block_logs_and_save_image:
12471223
stage: build
12481224
extends: [.extended_block_log_creation, .test_tools_based]
@@ -1261,55 +1237,24 @@ generate_universal_block_logs_and_save_image:
12611237
- public-runner-docker
12621238
- hived-for-tests
12631239

1264-
copy_universal_block_logs_to_cache:
1265-
stage: build
1266-
extends: .docker_image_builder_job
1267-
needs:
1268-
- job: generate_universal_block_logs_and_save_image
1269-
artifacts: true
1270-
variables:
1271-
UNIVERSAL_BLOCK_LOGS_CACHE_DIR: "/cache/universal_block_logs_${UNIVERSAL_BLOCK_LOG_LATEST_COMMIT_SHORT_SHA}"
1272-
script:
1273-
- echo $UNIVERSAL_BLOCK_LOGS_CACHE_DIR
1274-
- echo "UNIVERSAL_BLOCK_LOGS_CACHE_DIR=$UNIVERSAL_BLOCK_LOGS_CACHE_DIR" > $CI_PROJECT_DIR/universal_block_log_cache_dir.env
1275-
- |
1276-
if [ -d "$UNIVERSAL_BLOCK_LOGS_CACHE_DIR" ]; then
1277-
echo "Directory $UNIVERSAL_BLOCK_LOGS_CACHE_DIR exists. Skipping copy from image process..."
1278-
else
1279-
echo "Start copy universal block logs from image - $UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE"
1280-
mkdir -p $UNIVERSAL_BLOCK_LOGS_CACHE_DIR && cd $UNIVERSAL_BLOCK_LOGS_CACHE_DIR
1281-
echo "Start copy block_logs from - $UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE"
1282-
docker pull $UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE
1283-
$CI_PROJECT_DIR/scripts/ci-helpers/export-data-from-docker-image.sh $UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE $UNIVERSAL_BLOCK_LOGS_CACHE_DIR --image-path=/
1284-
checksum_from_image=$(docker inspect --format='{{ index .Config.Labels "universal_block_logs_checksum" }}' $UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE)
1285-
echo "Checksum from image: $checksum_from_image"
1286-
checksum_after_copy=$(find $UNIVERSAL_BLOCK_LOGS_CACHE_DIR -type f | sort | xargs cat | md5sum |cut -d ' ' -f 1)
1287-
echo "Checksum after copy: $checksum_after_copy"
1288-
if [[ "$checksum_from_image" != "$checksum_after_copy" ]]; then
1289-
echo "Checksum mismatch detected! The checksum from the container does not match the checksum after copying."
1290-
exit 1
1291-
fi
1292-
fi
1293-
- tree $UNIVERSAL_BLOCK_LOGS_CACHE_DIR
1294-
artifacts:
1295-
reports:
1296-
dotenv:
1297-
- universal_block_log_cache_dir.env
1298-
tags:
1299-
- data-cache-storage
1300-
13011240
universal_block_log_tests:
13021241
stage: test
13031242
extends: .test_tools_based
13041243
needs:
13051244
- !reference [.test_tools_based, needs]
1306-
- job: copy_universal_block_logs_to_cache
1245+
- job: generate_universal_block_logs_and_save_image
13071246
artifacts: true
13081247
variables:
1248+
NODE_ADDRESS: "universal-block-log-server:80"
13091249
PYTEST_TIMEOUT_MINUTES: 8
13101250
PYTEST_JUNIT_REPORT: $CI_PROJECT_DIR/tests/python/functional/util/universal_block_logs/report.xml
1251+
UNIVERSAL_BLOCK_LOGS_DESTINATION: $CI_PROJECT_DIR/tests/python/functional/util/universal_block_logs
1252+
services:
1253+
- *universal-block-log-service
13111254
script:
1312-
- cp -r $UNIVERSAL_BLOCK_LOGS_CACHE_DIR/* $CI_PROJECT_DIR/tests/python/functional/util/universal_block_logs
1255+
- test -n "$UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE"
1256+
- curl -I ${NODE_ADDRESS} || (echo "error connecting to service universal-block-log-server" && false)
1257+
- wget -nH -np -P $UNIVERSAL_BLOCK_LOGS_DESTINATION -r -R "index.html*" --cut-dirs=1 universal-block-log-server:80/universal_block_logs/
13131258
- cd $CI_PROJECT_DIR/tests/python/functional/util/universal_block_logs
13141259
- !reference [.run-pytest, script]
13151260
tags:
@@ -1320,12 +1265,18 @@ colony_tests:
13201265
extends: .test_tools_based
13211266
needs:
13221267
- !reference [.test_tools_based, needs]
1323-
- job: copy_universal_block_logs_to_cache
1268+
- job: generate_universal_block_logs_and_save_image
13241269
variables:
1270+
NODE_ADDRESS: "universal-block-log-server:80"
13251271
PYTEST_TIMEOUT_MINUTES: 10
13261272
PYTEST_JUNIT_REPORT: $CI_PROJECT_DIR/tests/python/functional/colony/report.xml
1273+
UNIVERSAL_BLOCK_LOGS_DESTINATION: $CI_PROJECT_DIR/tests/python/functional/util/universal_block_logs
1274+
services:
1275+
- *universal-block-log-service
13271276
script:
1328-
- cp -r $UNIVERSAL_BLOCK_LOGS_CACHE_DIR/* $CI_PROJECT_DIR/tests/python/functional/util/universal_block_logs
1277+
- test -n "$UNIVERSAL_BLOCK_LOG_LATEST_VERSION_IMAGE"
1278+
- curl -I ${NODE_ADDRESS} || (echo "error connecting to service universal-block-log-server" && false)
1279+
- wget -nH -np -P $UNIVERSAL_BLOCK_LOGS_DESTINATION -r -R "index.html*" --cut-dirs=1 universal-block-log-server:80/universal_block_logs/
13291280
- cd $CI_PROJECT_DIR/tests/python/functional/colony
13301281
- !reference [.run-pytest, script]
13311282
tags:

scripts/ci-helpers/testing_block_log_image_generator.sh

+4-6
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,17 @@ else
4545
python3 generate_testing_block_logs.py --output-block-log-directory="$TESTING_BLOCK_LOGS_DIR/block_logs_for_testing"
4646
echo "Block logs saved in: $TESTING_BLOCK_LOGS_DIR"
4747

48-
checksum=$(find $TESTING_BLOCK_LOGS_DIR -type f | sort | xargs cat | md5sum |cut -d ' ' -f 1)
49-
echo "Checksum of the generated testing block logs: $checksum"
50-
5148
echo "Build a Dockerfile"
5249

5350
pwd
5451
cd $TESTING_BLOCK_LOGS_DIR
5552
pwd
5653

5754
cat <<EOF > Dockerfile
58-
FROM scratch
59-
LABEL testing_block_logs_checksum=${checksum}
60-
COPY block_logs_for_testing /testing_block_logs
55+
FROM nginx:alpine3.20-slim
56+
COPY block_logs_for_testing /usr/share/nginx/html/testing_block_logs
57+
RUN sed -i "/index index.html index.htm;/a \ autoindex on;" /etc/nginx/conf.d/default.conf
58+
EXPOSE 80
6159
EOF
6260
cat Dockerfile
6361
echo "Build docker image containing testing_block_logs"

scripts/ci-helpers/universal_block_log_image_generator.sh

+12-7
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,12 @@ else
4545
python3 generate_universal_block_logs.py --output-block-log-directory="$UNIVERSAL_BLOCK_LOGS_DIR"
4646
echo "Block logs saved in: $UNIVERSAL_BLOCK_LOGS_DIR"
4747

48-
checksum=$(find $UNIVERSAL_BLOCK_LOGS_DIR -type f | sort | xargs cat | md5sum |cut -d ' ' -f 1)
49-
echo "Checksum of the generated universal block logs: $checksum"
48+
# Note that checksum generation (and check in jobs which get the block logs from docker image)
49+
# has been removed when the image created below has been turned into http server thus eliminating
50+
# the intermediate step of runner-based cache directories.
51+
#
52+
# checksum=$(find $UNIVERSAL_BLOCK_LOGS_DIR -type f | sort | xargs cat | md5sum |cut -d ' ' -f 1)
53+
# echo "Checksum of the generated universal block logs: $checksum"
5054

5155
echo "Build a Dockerfile"
5256

@@ -55,11 +59,12 @@ else
5559
pwd
5660

5761
cat <<EOF > Dockerfile
58-
FROM scratch
59-
LABEL universal_block_logs_checksum=${checksum}
60-
COPY block_log_open_sign /block_log_open_sign
61-
COPY block_log_single_sign /block_log_single_sign
62-
COPY block_log_multi_sign /block_log_multi_sign
62+
FROM nginx:alpine3.20-slim
63+
COPY block_log_open_sign /usr/share/nginx/html/universal_block_logs/block_log_open_sign
64+
COPY block_log_single_sign /usr/share/nginx/html/universal_block_logs/block_log_single_sign
65+
COPY block_log_multi_sign /usr/share/nginx/html/universal_block_logs/block_log_multi_sign
66+
RUN sed -i "/index index.html index.htm;/a \ autoindex on;" /etc/nginx/conf.d/default.conf
67+
EXPOSE 80
6368
EOF
6469
cat Dockerfile
6570
echo "Build docker image containing universal_block_logs"

tests/python/functional/util/testing_block_logs/generate_testing_block_logs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def prepare_empty_logs(
3333
logger.disable("helpy")
3434
logger.disable("test_tools")
3535

36-
# Initial 30 blocks are needed to have at least 10 irreversible ones.
36+
# Initial 30 blocks are needed to have at least 10 irreversible ones
3737
block_log_directory_30 = output_block_log_directory / "empty_30"
3838
block_log_directory_30.mkdir(parents=True, exist_ok=True)
3939
generate_and_copy_empty_log(9999, 30, block_log_directory_30)

tests/python/functional/util/universal_block_logs/generate_universal_block_logs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ def prepare_block_log(
220220
assert node.api.database.get_hardfork_properties().last_hardfork == current_hardfork_number
221221
tt.logger.info(f"Finish waiting for current hardfork! @Block: {node.get_last_block_number()}")
222222

223-
# To avoid a missed block wait +128 blocks ( at least 33% of the blocks should be correct )
223+
# To avoid a missed block wait +128 blocks ( at least 33% of the blocks should be correct ).
224224
node.wait_for_block_with_number(headblock + 250)
225225

226226
# waiting for the block with the last transaction to become irreversible

0 commit comments

Comments
 (0)