Skip to content

Commit 1b32176

Browse files
committed
הפיכת הטסט שגרם להפלת ההרצות לאופציונאלי
1 parent bf36909 commit 1b32176

2 files changed

Lines changed: 110 additions & 81 deletions

File tree

.github/scripts/write-otzaria-zip-summary.sh

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,20 @@ SUPPLEMENTAL_REPORT_PATH="${2:-build/supplemental-hebrew-titles.json}"
66
SUPPLEMENTAL_STATUS_PATH="${3:-build/supplemental-report-status.json}"
77
DOWNLOAD_STATUS_PATH="${4:-build/supplemental-download-status.json}"
88
OTZARIA_REPORT_PATH="${5:-build/supplemental-otzaria-report.json}"
9-
IMPORT_VALIDATION_PATH="${6:-build/supplemental-import-validation.json}"
9+
ZIP_VALIDATION_PATH="${6:-build/supplemental-zip-validation.json}"
1010
SEED_TAG="${7:-לא ידוע}"
1111
ARTIFACT_NAME="${8:-לא ידוע}"
1212
SUPPLEMENTAL_ENABLED="${9:-לא ידוע}"
13+
IMPORT_VALIDATION_PATH="${10:-build/supplemental-import-validation.json}"
14+
IMPORTER_VALIDATION_ENABLED="${11:-false}"
1315

1416
md_escape() { sed -e 's/|/\\|/g' -e ':a;N;$!ba;s/\r\{0,1\}\n/ /g'; }
1517
json_value() { jq -r "$2 // 0" "$1" 2>/dev/null || printf 'לא זמין'; }
1618

1719
{
1820
echo "# דוח מפורט — ייצוא ספריא ל־Otzaria ZIP"
1921
echo
20-
echo "> Seed: \`$SEED_TAG\` · Artifact: \`$ARTIFACT_NAME\` · ZIP משלים הופעל: \`$SUPPLEMENTAL_ENABLED\`"
22+
echo "> Seed: \`$SEED_TAG\` · Artifact: \`$ARTIFACT_NAME\` · ZIP משלים הופעל: \`$SUPPLEMENTAL_ENABLED\` · בדיקת importer הופעלה: \`$IMPORTER_VALIDATION_ENABLED\`"
2123
echo
2224
echo "הדוח מפריד בין הייצוא הרגיל של ספריא לבין ספרים עבריים שחסרים בו ונמצאו דרך ה־API. כל קובצי ה־JSON הגולמיים מצורפים ל־artifacts לצורך בדיקה מלאה."
2325
echo
@@ -204,26 +206,46 @@ json_value() { jq -r "$2 // 0" "$1" 2>/dev/null || printf 'לא זמין'; }
204206
echo "> לא נוצר דוח ייצוא משלים."
205207
fi
206208
echo
207-
if [[ -s "$IMPORT_VALIDATION_PATH" ]]; then
208-
verified=$(jq -r '.verified // false' "$IMPORT_VALIDATION_PATH")
209-
expected=$(json_value "$IMPORT_VALIDATION_PATH" '.expectedBooks // .addedBooks')
209+
if [[ -s "$ZIP_VALIDATION_PATH" ]]; then
210+
verified=$(jq -r '.verified // false' "$ZIP_VALIDATION_PATH")
211+
books=$(json_value "$ZIP_VALIDATION_PATH" '.exportedBooks')
212+
text_files=$(json_value "$ZIP_VALIDATION_PATH" '.textFiles')
213+
links=$(json_value "$ZIP_VALIDATION_PATH" '.exportedLinks')
214+
zip_bytes=$(json_value "$ZIP_VALIDATION_PATH" '.zipBytes')
215+
zip_sha=$(jq -r '.zipSha256 // "לא נרשם"' "$ZIP_VALIDATION_PATH")
216+
if [[ "$verified" == "true" ]]; then
217+
echo "> ✅ ה־ZIP המשלים תקין: **$books** ספרים, **$text_files** קובצי טקסט, **$links** קישורים וגודל **$zip_bytes** bytes."
218+
echo "> SHA-256: \`$zip_sha\`"
219+
else
220+
echo "> ❌ בדיקת מבנה ה־ZIP המשלים לא הושלמה בהצלחה."
221+
fi
222+
elif [[ "$SUPPLEMENTAL_ENABLED" == "true" ]]; then
223+
echo "> בדיקת ה־ZIP המשלים לא הושלמה או שלא נוצר ZIP."
224+
else
225+
echo "> יצירת ZIP משלים לא הופעלה בהרצה זו."
226+
fi
227+
echo
228+
echo "### בדיקת importer האופציונלית"
229+
echo
230+
if [[ "$IMPORTER_VALIDATION_ENABLED" == "true" && -s "$IMPORT_VALIDATION_PATH" ]]; then
231+
importer_verified=$(jq -r '.verified // false' "$IMPORT_VALIDATION_PATH")
232+
expected=$(json_value "$IMPORT_VALIDATION_PATH" '.expectedBooks')
210233
added=$(json_value "$IMPORT_VALIDATION_PATH" '.addedBooks')
211-
importer_ids=$(json_value "$IMPORT_VALIDATION_PATH" '.importerIds // .addedBooks')
212-
unique_ids=$(json_value "$IMPORT_VALIDATION_PATH" '.uniqueImporterIds // .addedBooks')
213-
colliding_ids=$(json_value "$IMPORT_VALIDATION_PATH" '.collidingSeedIds')
234+
importer_ids=$(json_value "$IMPORT_VALIDATION_PATH" '.importerIds')
235+
unique_ids=$(json_value "$IMPORT_VALIDATION_PATH" '.uniqueImporterIds')
236+
collisions=$(json_value "$IMPORT_VALIDATION_PATH" '.collidingSeedIds')
214237
outbound=$(json_value "$IMPORT_VALIDATION_PATH" '.outboundLinksToSeed')
215-
state_sha=$(jq -r '.buildStateSha256 // "לא נרשם"' "$IMPORT_VALIDATION_PATH")
216-
if [[ "$verified" == "true" ]]; then
217-
echo "> ✅ ה־ZIP המשלים אומת באמצעות importer אמיתי של Otzaria: צפויים **$expected**, נוספו **$added**, נרשמו **$importer_ids** מזהים (**$unique_ids** ייחודיים), התנגשויות מול seed: **$colliding_ids**, וקישורים לספרי seed: **$outbound**."
218-
echo "> buildstate של ה־seed: \`$state_sha\`"
238+
if [[ "$importer_verified" == "true" ]]; then
239+
echo "> ✅ בדיקת הייבוא הופעלה ועברה: צפויים **$expected**, נוספו **$added**, נרשמו **$importer_ids** מזהים (**$unique_ids** ייחודיים), התנגשויות: **$collisions**, קישורים לספרי seed: **$outbound**."
219240
else
220-
validation_error=$(jq -r '.error // "סיבת הכשל לא נרשמה"' "$IMPORT_VALIDATION_PATH")
221-
echo "> ❌ אימות ה־ZIP נכשל: $validation_error. צפויים **$expected**, נוספו **$added**, נרשמו **$importer_ids** מזהים (**$unique_ids** ייחודיים), התנגשויות מול seed: **$colliding_ids**."
241+
importer_error=$(jq -r '.error // "סיבה לא נרשמה"' "$IMPORT_VALIDATION_PATH")
242+
echo "> ❌ בדיקת הייבוא האופציונלית הופעלה ונכשלה: $importer_error. צפויים **$expected**, נוספו **$added**, התנגשויות: **$collisions**."
222243
fi
244+
elif [[ "$IMPORTER_VALIDATION_ENABLED" == "true" ]]; then
245+
echo "> בדיקת הייבוא התבקשה אך לא הושלמה. היא רצה רק כאשר גם ה־ZIP המשלים הופעל ונמצאו ספרים משלימים."
223246
else
224-
echo "> אימות ה־ZIP המשלים לא בוצע או לא הושלם."
247+
echo "> בדיקת הייבוא לא הופעלה. זהו מצב ברירת המחדל, ואין לה השפעה על יצירת קובצי ה־ZIP."
225248
fi
226-
227249
echo
228250
echo "## 5. קובצי אבחון שנוצרו בהרצה"
229251
echo
@@ -238,7 +260,6 @@ json_value() { jq -r "$2 // 0" "$1" 2>/dev/null || printf 'לא זמין'; }
238260
echo "| \`$path\` | לא נוצר | — | $description |"
239261
fi
240262
done <<EOF
241-
build/seed-seforim.db.buildstate|מצב הקצאת המזהים של מסד ה־seed
242263
build/incremental-sefaria-otzaria.zip|ה־ZIP הרגיל שנוצר
243264
build/supplemental-sefaria-otzaria.zip|ה־ZIP המשלים שנוצר
244265
$SEFARIA_REPORT_PATH|דוח הייצוא הרגיל ורשימות המועמדים
@@ -248,7 +269,9 @@ $DOWNLOAD_STATUS_PATH|סטטוס הורדה, סינון וקישורים לכל
248269
build/supplemental-merged-files.txt|רשימת קובצי merged שהועברו לייצוא
249270
build/supplemental-api-links.json|כל קישורי ה־API שנאספו
250271
$OTZARIA_REPORT_PATH|דוח הייצוא של ה־ZIP המשלים
251-
$IMPORT_VALIDATION_PATH|תוצאת אימות importer מול מסד ה־seed
272+
$ZIP_VALIDATION_PATH|בדיקת מבנה, ספירת טקסטים ו־SHA-256 של ה־ZIP המשלים
273+
$IMPORT_VALIDATION_PATH|תוצאת בדיקת ה־importer האופציונלית
274+
build/supplemental-validation-book-ids.txt|מזהי הספרים שנוספו בבדיקת ה־importer
252275
EOF
253276
echo
254277
echo "_הערה: רשימת ״סכמות ללא merged.json״ היא רשימת מועמדים רחבה. רשימת ״הספרים העבריים החסרים״ היא התוצאה המאומתת מול גרסאות ה־API של ספריא._"

0 commit comments

Comments
 (0)