- Зачем: - Snap uv не запускался внутри ограниченного systemd-сервиса без cap_dac_override. - Что: - workflow переведён на постоянный Python venv с pinned requirements. - повторные сборки проверяют зависимости через pip без их переустановки. - Snap удалён из PATH runner, runbook дополнен python3-venv и описанием окружения. - Проверка: - от имени gitea-runner дважды выполнены pip install, pip check и mkdocs build --strict; второй запуск переиспользовал окружение. - обновлённый systemd unit прошёл systemd-analyze verify и успешно перезапущен.
32 lines
732 B
Bash
Executable File
32 lines
732 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
readonly venv_dir="/var/lib/gitea-runner/venvs/site"
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "Usage: $0 SOURCE_DIR" >&2
|
|
exit 2
|
|
fi
|
|
|
|
source_dir=$(realpath "$1")
|
|
requirements_file="${source_dir}/.gitea/requirements-site.txt"
|
|
|
|
if [[ ! -f $requirements_file ]]; then
|
|
echo "Requirements file not found: ${requirements_file}" >&2
|
|
exit 2
|
|
fi
|
|
|
|
mkdir -p "$(dirname "$venv_dir")"
|
|
if [[ ! -x "${venv_dir}/bin/python" ]]; then
|
|
python3 -m venv "$venv_dir"
|
|
fi
|
|
|
|
"${venv_dir}/bin/python" -m pip install \
|
|
--disable-pip-version-check \
|
|
--no-input \
|
|
--requirement "$requirements_file"
|
|
"${venv_dir}/bin/python" -m pip check
|
|
cd "$source_dir"
|
|
"${venv_dir}/bin/python" -m mkdocs build --strict
|