|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / changes (pull_request) Successful in 8s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
Волт Obsidian живёт на Beget вместе с Forgejo и GlitchTip и там же остаётся. А deploy-obsidian.yml ходил на secrets.DEPLOY_HOST безусловно — тот самый секрет, который 30.08 будет переставлен на Selectel. Значит в день переезда этот workflow молча сменил бы адресата: git reset на /opt/gendesign продуктового хоста и docker compose стека CouchDB там же, а волт на Beget тем временем перестал бы обновляться. Без единой ошибки — деплой зелёный, машина другая. Файл сам это признавал в шапке: проблема была описана и намеренно оставлена, потому что прошлая правка касалась подлинности хоста, а не маршрутизации. Теперь адресат берётся как INFRA_DEPLOY_HOST с фолбэком на DEPLOY_HOST. До разъезда это одна машина, поэтому сегодня не меняется ничего; после — workflow остаётся на инфраструктурном хосте без правки файла в горячий момент. Схема и фолбэки user/key/port скопированы с deploy-infra.yml, чтобы два файла про один и тот же хост не расходились в поведении. Отпечаток выбирается В ПАРЕ с адресатом, отдельным шагом с явным if. Соблазн написать `secrets.INFRA_FP || secrets.DEPLOY_FP` — ловушка: если инфра-хост задан, а его отпечаток нет, выражение свалится на отпечаток другой машины, и ssh откажет со сверкой ключа Beget'а против отпечатка Selectel'а. Перекрёстного фолбэка здесь нет и быть не должно — ровно как в deploy-infra.yml. Отпечаток идёт вниз через output шага: это публичный хеш ключа хоста, не секрет. Приватный ключ так передавать нельзя, он остался прямой ссылкой на секрет. $GITHUB_OUTPUT — построчный формат «ключ=значение», поэтому перевод строки внутри значения означает инъекцию произвольного output'а. Отпечаток однострочный по определению, но в поле секрета лишний перевод строки попадает копипастой на раз — шапка файла об этом предупреждает отдельно. Проверка падает с внятным текстом вместо тихой подмены: молча вычищать нельзя, сверка побайтовая и trim изменил бы результат. Проверено: YAML парсится, шаг проходит bash -n, поведение прогнано на трёх значениях — нормальный отпечаток даёт rc=0 и строку про сверку, пустой даёт предупреждение и не роняет деплой (как сегодня), значение с переводом строки отбивается с rc=1. Refs #3062, #3029, #3057 |
||
|---|---|---|
| .. | ||
| workflows | ||