Skip to content

Commit 6cbe4f8

Browse files
committed
perf: 整理ci脚本命令行参数
1 parent e18f7de commit 6cbe4f8

3 files changed

Lines changed: 19 additions & 11 deletions

File tree

.github/workflows/build-release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ jobs:
224224
shell: pwsh
225225
env:
226226
RELEASE_VERSION: ${{ needs.version.outputs.version }}
227+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
227228
run: python tools/ci/prepare_release_assets.py --release-version "$env:RELEASE_VERSION"
228229

229230
- name: Create Release

tools/ci/generate_install_manifest.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,23 @@ def sha256(path: Path) -> str:
1414
return h.hexdigest().upper()
1515

1616

17+
_DEFAULT_EXCLUDE_PREFIXES: list[str] = ["dist/", "deploy/build/", ".venv/", ".install/uv_cache/"]
18+
19+
1720
def main() -> int:
1821
parser = argparse.ArgumentParser(description="Generate install manifest for offline installer move/verify.")
1922
parser.add_argument("--root", default=".", help="Root directory to scan (default: .)")
2023
parser.add_argument("--output", default="install_manifest.json", help="Output manifest path")
2124
parser.add_argument(
2225
"--exclude-prefix",
2326
action="append",
24-
default=["dist/", "deploy/build/", ".venv/", ".install/uv_cache/"],
25-
help="Exclude path prefix (posix) relative to root",
27+
default=None,
28+
metavar="PREFIX",
29+
help=(
30+
"Exclude path prefix (posix) relative to root. "
31+
"Can be specified multiple times. "
32+
f"Defaults to: {', '.join(_DEFAULT_EXCLUDE_PREFIXES)}"
33+
),
2634
)
2735
parser.add_argument(
2836
"--ignore-read-errors",
@@ -35,8 +43,9 @@ def main() -> int:
3543
output_path = Path(args.output)
3644
output_abs = output_path.resolve() if output_path.is_absolute() else (root / output_path).resolve()
3745

46+
raw_prefixes: list[str] = args.exclude_prefix if args.exclude_prefix is not None else _DEFAULT_EXCLUDE_PREFIXES
3847
exclude_prefixes: list[str] = []
39-
for p in (args.exclude_prefix or []):
48+
for p in raw_prefixes:
4049
if not p:
4150
continue
4251
norm = p.replace("\\", "/")

tools/ci/prepare_release_assets.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,19 +141,17 @@ def _zip_single_file(file_path: Path, zip_path: Path) -> None:
141141
def main() -> int:
142142
parser = argparse.ArgumentParser(description="Prepare release assets and package Full/Full-Environment.")
143143
parser.add_argument("--repo-root", default=".", help="Repository root (default: .)")
144-
parser.add_argument("--release-version", default="", help="Release version (default from env RELEASE_VERSION)")
144+
parser.add_argument("--release-version", required=True, help="Release version")
145145
parser.add_argument("--dist-src", default="deploy/dist", help="Downloaded dist artifact directory")
146146
parser.add_argument("--dist-name", default="dist", help="Name of dist directory after moving to parent")
147147
parser.add_argument("--env-dir", default=".install", help="Offline env directory in repo root")
148-
parser.add_argument("--github-token", default="", help="GitHub token (optional; helps with rate limits)")
149148
args = parser.parse_args()
150149

151150
repo_root = Path(args.repo_root).resolve()
152-
release_version = args.release_version or os.environ.get("RELEASE_VERSION") or ""
153-
if not release_version:
154-
raise SystemExit("Missing release version (set RELEASE_VERSION or pass --release-version)")
151+
release_version = args.release_version
155152

156-
token = args.github_token or os.environ.get("GITHUB_TOKEN") or ""
153+
# token通过环境变量注入
154+
token = os.environ.get("GITHUB_TOKEN", "")
157155

158156
dist_src = (repo_root / args.dist_src).resolve()
159157
if not dist_src.exists():
@@ -290,7 +288,7 @@ def expand_zip_into_named_folder(url: str, download_path: Path, dest_root: Path,
290288

291289
# 7. Full 包清单 + 打包(在 repo_root 下打包全部内容;zip 输出在 dist_dir 以避免自包含)
292290
_log("Generate install manifest (Full)")
293-
_run([sys.executable, "tools/ci/generate_install_manifest.py", "--output", "install_manifest.json"], cwd=repo_root)
291+
_run([sys.executable, "tools/ci/generate_install_manifest.py"], cwd=repo_root)
294292

295293
full_zip = dist_dir / f"ZenlessZoneZero-OneDragon-{release_version}-Full.zip"
296294
_log(f"Create Full zip: {full_zip}")
@@ -304,7 +302,7 @@ def expand_zip_into_named_folder(url: str, download_path: Path, dest_root: Path,
304302
shutil.copy2(env_zip, env_dir / "ZenlessZoneZero-OneDragon-Environment.zip")
305303

306304
_log("Generate install manifest (Full-Environment)")
307-
_run([sys.executable, "tools/ci/generate_install_manifest.py", "--output", "install_manifest.json"], cwd=repo_root)
305+
_run([sys.executable, "tools/ci/generate_install_manifest.py"], cwd=repo_root)
308306

309307
full_env_zip = dist_dir / f"ZenlessZoneZero-OneDragon-{release_version}-Full-Environment.zip"
310308
_log(f"Create Full-Environment zip: {full_env_zip}")

0 commit comments

Comments
 (0)