fix(ci): test jobs fail on sudo in act runner #4
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
slaid098/voice_assistant#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Контекст
CI workflow
.github/workflows/ci.ymlпадает на всех test-jobs (3.12, 3.13) в Forgejo act runner. Jobtestсодержит шаг:Act runner выполняет команды в Docker-контейнере, где пользователь уже
root, иsudoне установлен. Лог Forgejo Actions (run 251, job 521):Проблема проявилась на PR#3 (feat/wake-word/openwakeword-detector), но workflow
ci.ymlне менялся с исходного коммитаf179e14(PR#1 на master) — значит CI был сломан с самого начала и ни разу не проходил зелёным на test-jobs.Параллельно
lintиtypecheckпадают наastral-sh/setup-uv@v3сlstat .../docs: no such file or directory— это flaky act cache, отдельная инфраструктурная проблема (act runner, не репо).Задача
Заставить test-jobs проходить в act runner, убрав зависимость от
sudo.Контракты
ci.yml— единственный CI workflow (lint / typecheck / test / complexity)libsdl2-devиlibportaudio2нужны дляsounddeviceиpygame(SDL2) — системные зависимости, без которыхuv sync --extra devможет установить пакеты, но импорт/тест упадётsudoизбыточенИнварианты
apt-getбез sudo работает и там для root-usersudo, оставляемapt-getГраничные случаи
apt-getбез sudo в act: работает (контейнер root)apt-getбез sudo в GitHub Actionsubuntu-latest: работает для root-runner'а (runner по умолчанию не root, но для root-user шаг сapt-getсработает; если runner не root — нуженsudo). Решение: условныйsudoчерез shell-проверкуif command -v sudo >/dev/null 2>&1; then sudo apt-get ...; else apt-get ...; fi— либо простоapt-get(act-only). Предпочтителен первый вариант для совместимости.setup-uv@v3(lstat docs) — отдельная проблема, НЕ чинить в этом issueВлияние на связанные компоненты
ci.yml→ test-jobs (3.12, 3.13): начнут доходить доuv run pytestcomplexityjob: не затронут (не использует apt-get)lint/typecheck: не затронуты (тоже падают, но на setup-uv — отдельная проблема)Вне scope
astral-sh/setup-uv@v3(lstat docs) — act cache, инфраструктура runner'аopenwakeword/onnxruntimeв dependencies (если понадобится — отдельный issue после зелёного CI)Критерии приемки
ci.ymlшаг apt-get работает безsudoв act runneruv run pytest(не падают на apt-get)Fixed in PR #3 (conditional
if command -v sudoguard in ci.yml). Closing as resolved.