Блог
Смерженный аудит FPGA-репозитория показывает, как отсутствующий checkout превратил двенадцать непроверенных расхождений в видимость исправлений, а ещё два отказа оказались обычной проблемой раннера.
Красный CI-гейт ещё не является finding. Он может сообщать о finding, а может оказаться проверкой, которой не дали объект для проверки.
PR #564 смержен в gHashTag/trinity-fpga. Тема узкая: три гейта, связанные с документами и артефактами, падали из-за собственной инфраструктуры, а два других оставили красными, потому что они сообщали о содержательных проблемах.
Workflow artefact-agreement просил actions/checkout взять `../t27`. GitHub Actions запрещает путь к репозиторию за пределами рабочей области checkout. При этом у шага стоял `continue-on-error: true`, поэтому задача продолжала работу без каталога, с которым должна была сравниваться.
После этого ratchet напечатал двенадцать расхождений baseline как `[fixed]`. Это слово не было открытием. Оно означало, что сравнение не запустилось. Смерженный коммит воспроизводит оба состояния: без входа гейт показывает мнимые исправления, а после восстановления входа сообщает `OK: no new disagreements (13 known)`.
Отсутствующий вход должен останавливать проверку, а не выглядеть как согласие.
Decoder conformance и undefined-outputs оба запускали `./conform.sh`, чей shebang — `#!/bin/zsh`. В Ubuntu-раннере zsh не было, поэтому обе задачи завершались с кодом 127 до того, как скрипты успевали что-либо сказать о дизайне. Исправление устанавливает zsh, а не молча переписывает скрипты репозитория на другой shell.
У проверки ссылок на документы была другая причина. Один документ называет `/root/bitnet_h100_metrics.json`. В pathlib соединение базового каталога с абсолютным путём отбрасывает базу, поэтому проверка пыталась читать `/root` раннера и получала `PermissionError`. Новый helper считает недоступные пути отсутствующими и позволяет проверке дойти до содержательных вопросов.
Два гейта намеренно не меняли: один по-прежнему сообщает об отозванном числе, другой — о двух артефактах-сиротах. Это содержательные решения, не plumbing. PR оставляет вопросы видимыми, а не делает dashboard зелёным удалением самих вопросов.
Полезная граница для красной проверки такова: прежде чем толковать её вывод, убедитесь, что у неё были вход, интерпретатор и пути к файлам. Иначе цвет сообщает о раннере, а не о работе.
Каждая цифра выше измерена, и рядом с ней названы её пределы.