Шаг был зелёным, но не проверял ничего: распознавание на раннере работает, а шаблон искал число сразу после стрелки, тогда как в выводе между ними стоит русское слово («-> блоков 29»). Совпадения не было, и шаг выходил с предупреждением вместо проверки. RenderTest теперь печатает итог машиночитаемой строкой RESULT — так же, как selftest. Отсутствие этой строки считается провалом: значит конвейер не доработал до конца. Пропуск остался только для случая, когда на машине нет языкового пакета распознавания. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -79,15 +79,14 @@ jobs:
|
|||||||
$out = & .\dist\RenderTest.exe --in .\dist\sample.png --out .\dist\ci --no-translate 2>&1 | Out-String
|
$out = & .\dist\RenderTest.exe --in .\dist\sample.png --out .\dist\ci --no-translate 2>&1 | Out-String
|
||||||
Write-Host $out
|
Write-Host $out
|
||||||
# Латиница в шаблонах намеренно — см. примечание о кодировке выше.
|
# Латиница в шаблонах намеренно — см. примечание о кодировке выше.
|
||||||
if ($out -match 'OCR\s+\S*\s*=?\s*$' -or $out -match 'exit code 2') {
|
if ($LASTEXITCODE -eq 2) {
|
||||||
Write-Host '::warning::no OCR language pack on the runner - frame check skipped'
|
Write-Host '::warning::no OCR language pack on the runner - frame check skipped'
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
if ($out -notmatch '->\s*(\d+)') {
|
if ($out -notmatch 'RESULT lines=(\d+) blocks=(\d+)') {
|
||||||
Write-Host '::warning::no block count in output - frame check skipped'
|
throw "RenderTest produced no RESULT line - the pipeline did not finish"
|
||||||
exit 0
|
|
||||||
}
|
}
|
||||||
$blocks = [int]$Matches[1]
|
$blocks = [int]$Matches[2]
|
||||||
Write-Host "blocks detected: $blocks"
|
Write-Host "blocks detected: $blocks"
|
||||||
# На этом кадре стабильно выходит 27-29 блоков. Резкое расхождение означает, что
|
# На этом кадре стабильно выходит 27-29 блоков. Резкое расхождение означает, что
|
||||||
# правки в Blocks.cs поехали — либо всё слиплось, либо рассыпалось.
|
# правки в Blocks.cs поехали — либо всё слиплось, либо рассыпалось.
|
||||||
|
|||||||
@@ -30,7 +30,11 @@
|
|||||||
|
|
||||||
## Установка
|
## Установка
|
||||||
|
|
||||||
Скопировать папку `dist` куда угодно и запустить `ScreenTranslator.exe`. Всё.
|
Скачать `ScreenTranslator.zip` из [релизов](../../releases), распаковать куда угодно и запустить
|
||||||
|
`ScreenTranslator.exe`. Всё — установщика нет, программа живёт в трее.
|
||||||
|
|
||||||
|
Релиз `latest` пересобирается автоматически при каждом изменении в `master`, так что по этой
|
||||||
|
ссылке всегда лежит свежая сборка. Релизы с номером версии остаются неизменными.
|
||||||
|
|
||||||
Если Windows покажет «SmartScreen защитил ваш компьютер» — «Подробнее» → «Выполнить в любом случае»
|
Если Windows покажет «SmartScreen защитил ваш компьютер» — «Подробнее» → «Выполнить в любом случае»
|
||||||
(файл без цифровой подписи).
|
(файл без цифровой подписи).
|
||||||
|
|||||||
@@ -227,6 +227,12 @@ namespace ScreenTranslator
|
|||||||
if (missed.Count > 0) Console.WriteLine("не найдено: " + string.Join(", ", missed));
|
if (missed.Count > 0) Console.WriteLine("не найдено: " + string.Join(", ", missed));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Итог латиницей и в фиксированном формате — по нему сборщик решает, не поехала ли
|
||||||
|
// сегментация. Человеческую сводку выше он разбирать не может: кодировка временного
|
||||||
|
// скрипта у раннера портит кириллицу, и любой шаблон с русским словом промахивается.
|
||||||
|
Console.WriteLine("RESULT lines={0} blocks={1} translated={2}",
|
||||||
|
lines.Count, blocks.Count, blocks.Count(b => b.Translated != null));
|
||||||
|
|
||||||
Console.WriteLine("\nкартинки: " + outDir);
|
Console.WriteLine("\nкартинки: " + outDir);
|
||||||
frame.Image.Dispose();
|
frame.Image.Dispose();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user