Скорее всего, причина в том, что $PATH
не содержит путь к build-sphynx
TL; DR пытается использовать command
Попробуйте это:
pages:
stage: build
tags:
- buildtag
script:
- pip install -U sphinx
- command sphinx-build -b html docs/ public/
only:
- master
Пояснение
GitLab
бегуны бегут по-другому
Поскольку GitLab CI
использует runners
, профиль оболочки runner
может отличаться от обычно used.
Таким образом, ваш бегун может быть настроен без объявления $PATH
в каталог, содержащий sphinx-build
Zsh / Bash порядок загрузки файлов запуска (.bashr c, .zshrc et c.)
См. это объяснение :
Проблема заключается в том, что Bash исходники из другого файла в зависимости от того, какого типа Оболочка, в которой он находится. Для «интерактивной оболочки без входа в систему» он читает .bashr c, но для «интерактивной оболочки для входа в систему» он читает из first .bash_profile, .bash_login и .profile (только). Нет разумной причины, почему это должно быть так; это просто история.
Что означает command
?
Поскольку мы не знаем путь, где установлен sphinx-build
, вы можете использовать такие команды, как: which
, type
, et c.
Согласно этому великому ответу ( shell - Почему бы не использовать «который»? Что использовать тогда? - Unix & Linux Обмен стека , автор рекомендует использовать command <name>
или $(command -v <name>)