fix(tradein/browser): проверка шрифтов в сборке ловила угаданный порог, а не суть

Первая версия требовала >=30 файлов в fc-list и покраснела на фактических
20 — порог был взят из головы, а не измерен. Значение имеет не число
файлов (оно зависит от того, что притащили соседние пакеты), а то, что
запрос Arial отдаёт метрически совместимый шрифт. Проверяем ровно это,
по всем пяти алиасам.

Замер образа 30.08: 20 файлов, 5 семейств (Liberation Sans/Serif/Mono,
Carlito, Caladea); Arial→Liberation Sans, Times New Roman→Liberation
Serif, Courier New→Liberation Mono, Calibri→Carlito, Cambria→Caladea.
This commit is contained in:
bot-backend 2026-08-30 01:47:42 +03:00
parent f403198c7e
commit 14f2518fc4

View file

@ -45,12 +45,20 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
# Настоящие шрифты Microsoft (ttf-mscorefonts-installer) сознательно НЕ ставим:
# пакет качает их с SourceForge на этапе сборки и требует интерактивного
# принятия EULA — хрупко и недетерминированно для CI-сборки образа.
# Проверка сборки намеренно смотрит НЕ на число файлов, а на алиасы: счёт файлов
# зависит от того, что притащили соседние пакеты (первая версия этой проверки
# требовала >=30 файлов и покраснела на фактических 20 — порог был угадан, а не
# измерен). Значение имеет ровно одно: спрашиваешь Arial — получаешь метрически
# совместимый шрифт, а не «шрифта нет». Замер образа 2026-08-30: 20 файлов,
# 5 семейств (Liberation Sans/Serif/Mono, Carlito, Caladea).
RUN fc-cache -f \
&& FONT_COUNT="$(fc-list | wc -l)" \
&& echo "tradein-browser: fc-list count after install: $FONT_COUNT" \
&& [ "$FONT_COUNT" -ge 30 ] \
&& echo "tradein-browser: fc-list = $(fc-list | wc -l) файлов, семейств: $(fc-list : family | tr , '\n' | sort -u | wc -l)" \
&& fc-match Arial | grep -qi "Liberation Sans" \
&& echo "tradein-browser: fc-match Arial -> Liberation Sans OK"
&& fc-match "Times New Roman" | grep -qi "Liberation Serif" \
&& fc-match "Courier New" | grep -qi "Liberation Mono" \
&& fc-match Calibri | grep -qi "Carlito" \
&& fc-match Cambria | grep -qi "Caladea" \
&& echo "tradein-browser: метрические алиасы Arial/TNR/Courier/Calibri/Cambria на месте"
WORKDIR /app