mirror of
https://github.com/zulip/zulip.git
synced 2026-06-12 21:00:58 +08:00
This is the default, but if we ever want to switch to uv’s managed Python later, it will be necessary to have this earlier to stop uv from keeping it after checking out an earlier branch. Signed-off-by: Anders Kaseorg <anders@zulip.com>
37 lines
1.2 KiB
Python
Executable File
37 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import argparse
|
|
import os
|
|
import platform
|
|
import sys
|
|
|
|
ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
if ZULIP_PATH not in sys.path:
|
|
sys.path.append(ZULIP_PATH)
|
|
|
|
from scripts.lib.setup_venv import get_venv_dependencies
|
|
from scripts.lib.zulip_tools import os_families, run
|
|
|
|
parser = argparse.ArgumentParser(description="Create a production virtualenv with caching")
|
|
parser.add_argument("deploy_path")
|
|
args = parser.parse_args()
|
|
|
|
# install dependencies for setting up the virtualenv
|
|
distro_info = platform.freedesktop_os_release()
|
|
vendor = distro_info["ID"]
|
|
os_version = distro_info["VERSION_ID"]
|
|
VENV_DEPENDENCIES = get_venv_dependencies(vendor, os_version)
|
|
if "debian" in os_families():
|
|
run(["apt-get", "-y", "install", "--no-install-recommends", *VENV_DEPENDENCIES])
|
|
elif "fedora" in os_families():
|
|
run(["yum", "-y", "install", *VENV_DEPENDENCIES])
|
|
else:
|
|
print("Unsupported platform: {}".format(distro_info["ID"]))
|
|
sys.exit(1)
|
|
|
|
os.chdir(ZULIP_PATH)
|
|
run(["scripts/lib/install-uv"])
|
|
run(
|
|
["uv", "sync", "--frozen", "--no-managed-python", "--only-group=prod"],
|
|
env={k: v for k, v in os.environ.items() if k not in {"PYTHONDEVMODE", "PYTHONWARNINGS"}},
|
|
)
|