55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
"""生成 release 包:
|
|
- 清理旧的 dist/
|
|
- 调用 prepare_dist.py --mode copy
|
|
- 复制 docker 配置到 dist/
|
|
- 打包为 release_YYYYmmdd_HHMMSS.zip
|
|
"""
|
|
import subprocess
|
|
import shutil
|
|
from pathlib import Path
|
|
import datetime
|
|
import sys
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
DIST = ROOT / "dist"
|
|
LOG = ROOT / "scripts" / "prepare_dist.log"
|
|
|
|
def run_prepare_dist():
|
|
cmd = [sys.executable, str(ROOT / "scripts" / "prepare_dist.py"), "--mode", "copy"]
|
|
print("Running:", " ".join(cmd))
|
|
subprocess.check_call(cmd, cwd=str(ROOT))
|
|
|
|
def clean_dist():
|
|
if DIST.exists():
|
|
print("Removing old dist/")
|
|
shutil.rmtree(DIST)
|
|
|
|
def copy_docker_configs():
|
|
# copy docker-compose and Dockerfile.opt files if present
|
|
targets = ["docker-compose.yml", "server/Dockerfile.opt", "web/Dockerfile.opt"]
|
|
for t in targets:
|
|
src = ROOT / t
|
|
if src.exists():
|
|
dest = DIST / src.name
|
|
dest.parent.mkdir(parents=True, exist_ok=True)
|
|
shutil.copy2(src, dest)
|
|
print(f"Copied {src} -> {dest}")
|
|
|
|
def make_zip():
|
|
ts = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
out = ROOT / f"release_{ts}.zip"
|
|
print(f"Creating {out}")
|
|
shutil.make_archive(str(out.with_suffix("")), 'zip', root_dir=str(DIST))
|
|
print("Done")
|
|
return out
|
|
|
|
def main():
|
|
clean_dist()
|
|
run_prepare_dist()
|
|
copy_docker_configs()
|
|
out = make_zip()
|
|
print("Release package:", out)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|