Skip to content

Commit 9f41bea

Browse files
chore: e2e helpers
1 parent f514089 commit 9f41bea

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

kash.sh

+22-20
Original file line numberDiff line numberDiff line change
@@ -1722,21 +1722,21 @@ run_e2e_tests () {
17221722
# yarn link "@kalisio/kdk" --link-folder /opt/kalisio/yarn-links
17231723
# export BROWSER="firefox"bucket
17241724
# mkdir -p "$ROOT_DIR/test/run/firefox"
1725-
return "$RET" # return the exit code of the tests
1725+
return "$RET" # return the exit code of the tests (= number of failed tests)
17261726
}
17271727

17281728
# Upload e2e tests artefacts to some s3 storage.
17291729
# Expected args:
17301730
# 1. the app root dir
17311731
# 2. the app name
1732-
# 3. the return code of the testing process
1732+
# 3. the number of failed tests
17331733
# 4. the s3 bucket where to upload artefacts (with a rclone remote, like ovh:e2e-test/blabla)
17341734
# 5. the rclone.conf file to use to upload artefacts
17351735
# 6. the file where the upload report will be written (json)
17361736
upload_e2e_tests_artefacts() {
17371737
local ROOT_DIR="$1"
17381738
local APP="$2"
1739-
local TESTS_RET_CODE="$3"
1739+
local NUM_FAILED="$3"
17401740
local S3_BUCKET="$4"
17411741
local RCLONE_CONF="$5"
17421742
local UPLOAD_REPORT_FILE="$6"
@@ -1759,7 +1759,7 @@ upload_e2e_tests_artefacts() {
17591759
cp "$TESTS_RESULTS_DIR/logs.txt" "$WORK_DIR/logs.txt"
17601760

17611761
# and keep captures and diffs for failed tests
1762-
local FAILED_TESTS=()
1762+
local TESTS_WITH_DIFF=()
17631763
readarray -d '' DIFF_FILES < <(find "$TESTS_RESULTS_DIR" -type f -name 'diff.*.png' -print0)
17641764
for DIFF_FILE in "${DIFF_FILES[@]}"; do
17651765
local BASE_DIFF_FILE
@@ -1776,7 +1776,7 @@ upload_e2e_tests_artefacts() {
17761776
local TEST_NAME
17771777
TEST_NAME="$TEST_DIR/${BASE_CAPTURE_FILE%.*}"
17781778

1779-
FAILED_TESTS+=("$TEST_NAME")
1779+
TESTS_WITH_DIFF+=("$TEST_NAME")
17801780

17811781
mkdir -p "$WORK_DIR/$TEST_DIR"
17821782
cp "$DIFF_FILE" "$WORK_DIR/$TEST_DIR"
@@ -1793,10 +1793,10 @@ upload_e2e_tests_artefacts() {
17931793
local LOGS_LINK
17941794
LOGS_LINK="$(rclone --config "$RCLONE_CONF" link "$REMOTE_DIR/logs.txt")"
17951795

1796-
printf '{ "app": "%s", "timestamp": "%s", "ret_code": "%d", "artefacts": "%s", "logs": "%s", "num_failed": "%d", "failed": [' "$APP" "$TIMESTAMP" "$TESTS_RET_CODE" "$ARTEFACTS_LINK" "$LOGS_LINK" "${#FAILED_TESTS[@]}" > "$UPLOAD_REPORT_FILE"
1796+
printf '{ "app": "%s", "timestamp": "%s", "num_failed": "%d", "artefacts": "%s", "logs": "%s", "num_diffs": "%d", "diffs": [' "$APP" "$TIMESTAMP" "$NUM_FAILED" "$ARTEFACTS_LINK" "$LOGS_LINK" "${#TESTS_WITH_DIFF[@]}" > "$UPLOAD_REPORT_FILE"
17971797

17981798
local COMMA=""
1799-
for TEST_NAME in "${FAILED_TESTS[@]}"; do
1799+
for TEST_NAME in "${TESTS_WITH_DIFF[@]}"; do
18001800
local CAPTURE_LINK
18011801
CAPTURE_LINK="$(rclone --config "$RCLONE_CONF" link "$REMOTE_DIR/$TEST_NAME.png")"
18021802
local DIFF_FILE
@@ -1825,12 +1825,14 @@ generate_e2e_tests_markdown_report() {
18251825
APP=$(get_json_value "$UPLOAD_REPORT_FILE" "app")
18261826
local TIMESTAMP
18271827
TIMESTAMP=$(get_json_value "$UPLOAD_REPORT_FILE" "timestamp")
1828+
local NUM_FAILED
1829+
NUM_FAILED=$(get_json_value "$UPLOAD_REPORT_FILE" "num_failed")
18281830
local ARTEFACTS_LINK
18291831
ARTEFACTS_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "artefacts")
18301832
local LOGS_LINK
18311833
LOGS_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "logs")
1832-
local NUM_FAILED
1833-
NUM_FAILED=$(get_json_value "$UPLOAD_REPORT_FILE" "num_failed")
1834+
local NUM_DIFFS
1835+
NUM_DIFFS=$(get_json_value "$UPLOAD_REPORT_FILE" "num_diffs")
18341836

18351837
printf "# [%s] (e2e run from %s)\n\n" "$(echo "$APP" | tr '[:lower:]' '[:upper:]')" "$TIMESTAMP" > "$MD_REPORT_FILE"
18361838
printf "[All artefacts](%s), [logs](%s)\n\n" "$ARTEFACTS_LINK" "$LOGS_LINK" >> "$MD_REPORT_FILE"
@@ -1841,15 +1843,15 @@ generate_e2e_tests_markdown_report() {
18411843
printf "> [!CAUTION]\n> **%d** tests have failed\n" "$NUM_FAILED" >> "$MD_REPORT_FILE"
18421844

18431845
local SECTIONS=()
1844-
for (( i = 0; i < NUM_FAILED; ++i )); do
1846+
for (( i = 0; i < NUM_DIFFS; ++i )); do
18451847
local TEST_NAME
1846-
TEST_NAME=$(get_json_value "$UPLOAD_REPORT_FILE" "failed[$i].name")
1848+
TEST_NAME=$(get_json_value "$UPLOAD_REPORT_FILE" "diff[$i].name")
18471849
printf "> - [%s](#%s)\n" "$TEST_NAME" "$(normalize_markdown_anchor "$TEST_NAME" "$MD_FLAVOR")" >> "$MD_REPORT_FILE"
18481850

18491851
local CAPTURE_LINK
1850-
CAPTURE_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "failed[$i].capture")
1852+
CAPTURE_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "diff[$i].capture")
18511853
local DIFF_LINK
1852-
DIFF_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "failed[$i].diff")
1854+
DIFF_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "diff[$i].diff")
18531855

18541856
read -r -d '' SECTION <<EOF
18551857
## $TEST_NAME
@@ -1925,14 +1927,14 @@ push_e2e_tests_report_to_slack() {
19251927

19261928
local APP
19271929
APP=$(get_json_value "$UPLOAD_REPORT_FILE" "app")
1928-
local TESTS_RET_CODE
1929-
TESTS_RET_CODE=$(get_json_value "$UPLOAD_REPORT_FILE" "ret_code")
1930+
local NUM_FAILED
1931+
NUM_FAILED=$(get_json_value "$UPLOAD_REPORT_FILE" "num_failed")
19301932
local ARTEFACTS_LINK
19311933
ARTEFACTS_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "artefacts")
19321934
local LOGS_LINK
19331935
LOGS_LINK=$(get_json_value "$UPLOAD_REPORT_FILE" "logs")
19341936

1935-
slack_e2e_report "$APP" "$TESTS_RET_CODE" "$SLACK_WEBHOOK" "$LOGS_LINK" "$ARTEFACTS_LINK"
1937+
slack_e2e_report "$APP" "$NUM_FAILED" "$SLACK_WEBHOOK" "$LOGS_LINK" "$ARTEFACTS_LINK"
19361938
}
19371939

19381940
# Take all steps to run e2e test and push results to a git repository. Binary artefacts
@@ -1953,7 +1955,7 @@ run_and_publish_e2e_tests_to_git_repo() {
19531955
local REPORTS_BASE="$6"
19541956

19551957
run_e2e_tests "$ROOT_DIR" "$APP"
1956-
local TESTS_RET_CODE="$?"
1958+
local NUM_FAILED="$?"
19571959

19581960
local MD_FLAVOR
19591961
[[ "$REPOSITORY_URL" = *gitlab* ]] && MD_FLAVOR="gitlab"
@@ -1963,7 +1965,7 @@ run_and_publish_e2e_tests_to_git_repo() {
19631965
local MD_REPORT_FILE="$TMP_DIR/e2e.md"
19641966

19651967
upload_e2e_tests_artefacts \
1966-
"$ROOT_DIR" "$APP" "$TESTS_RET_CODE" \
1968+
"$ROOT_DIR" "$APP" "$NUM_FAILED" \
19671969
"$S3_BUCKET" "$RCLONE_CONF" \
19681970
"$UPLOAD_REPORT_FILE"
19691971
generate_e2e_tests_markdown_report \
@@ -1989,12 +1991,12 @@ run_and_publish_e2e_tests_to_slack() {
19891991
local SLACK_WEBHOOK="$5"
19901992

19911993
run_e2e_tests "$ROOT_DIR" "$APP"
1992-
local TESTS_RET_CODE="$?"
1994+
local NUM_FAILED="$?"
19931995

19941996
local UPLOAD_REPORT_FILE="$TMP_DIR/e2e-upload-report.json"
19951997

19961998
upload_e2e_tests_artefacts \
1997-
"$ROOT_DIR" "$APP" "$TESTS_RET_CODE" \
1999+
"$ROOT_DIR" "$APP" "$NUM_FAILED" \
19982000
"$S3_BUCKET" "$RCLONE_CONF" \
19992001
"$UPLOAD_REPORT_FILE"
20002002
push_e2e_tests_report_to_slack \

0 commit comments

Comments
 (0)