feat(platform): expose multi-source vehicle evidence
This commit is contained in:
@@ -68,7 +68,9 @@ trap rollback ERR
|
||||
test ! -e "$next" || { printf 'release already exists: %s\n' "$next" >&2; exit 1; }
|
||||
mkdir -p "$next/web"
|
||||
cp "$old/platform-api" "$next/platform-api"
|
||||
cp "$old/lingniu-vehicle-platform.service" "$next/lingniu-vehicle-platform.service"
|
||||
if test -f "$old/lingniu-vehicle-platform.service"; then
|
||||
cp "$old/lingniu-vehicle-platform.service" "$next/lingniu-vehicle-platform.service"
|
||||
fi
|
||||
cp -a "$old/deploy" "$next/deploy"
|
||||
cp "$SCRIPT_DIR/prepare-web-release-tree.sh" "$next/deploy/prepare-web-release-tree.sh"
|
||||
cp "$SCRIPT_DIR/prune-release-history.py" "$next/deploy/prune-release-history.py"
|
||||
|
||||
@@ -10,7 +10,6 @@ old="$root/releases/old-release"
|
||||
mkdir -p "$old/web/assets" "$old/deploy" "$root/env" "$fixture/bin"
|
||||
printf '#!/usr/bin/env bash\nexit 0\n' > "$old/platform-api"
|
||||
chmod +x "$old/platform-api"
|
||||
printf '[Service]\n' > "$old/lingniu-vehicle-platform.service"
|
||||
cp "$SCRIPT_DIR/verify-web-release.sh" "$old/deploy/verify-web-release.sh"
|
||||
printf 'old.js\n' > "$old/web/.release-assets"
|
||||
printf 'old\n' > "$old/web/assets/old.js"
|
||||
@@ -38,6 +37,7 @@ grep -q '^PLATFORM_RELEASE=new-release$' "$root/env/platform.env"
|
||||
test -f "$root/current/web/assets/new.js"
|
||||
test -f "$root/current/web/assets/old.js"
|
||||
test -f "$root/current/web/.compatibility-manifests/1.assets"
|
||||
test ! -e "$root/current/lingniu-vehicle-platform.service"
|
||||
test "$(find "$root/releases" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ')" = 3
|
||||
grep -q 'web_release_install=ok release=new-release previous=old-release' "$fixture/install.out"
|
||||
|
||||
|
||||
@@ -29,6 +29,12 @@ def main():
|
||||
raise SystemExit('protected release is outside the release root: {}'.format(path))
|
||||
protected.add(path)
|
||||
|
||||
metadata_removed = 0
|
||||
for path in releases.iterdir():
|
||||
if path.is_file() and path.name.startswith('._'):
|
||||
path.unlink()
|
||||
metadata_removed += 1
|
||||
|
||||
candidates = [path.resolve() for path in releases.iterdir() if path.is_dir() and not path.is_symlink()]
|
||||
candidates.sort(key=lambda path: path.stat().st_mtime, reverse=True)
|
||||
keep = set(protected)
|
||||
@@ -46,7 +52,9 @@ def main():
|
||||
shutil.rmtree(str(path))
|
||||
removed += 1
|
||||
|
||||
print('release_prune=ok before={} kept={} removed={}'.format(len(candidates), len(keep), removed))
|
||||
print('release_prune=ok before={} kept={} removed={} metadata_removed={}'.format(
|
||||
len(candidates), len(keep), removed, metadata_removed
|
||||
))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -10,9 +10,11 @@ for index in 1 2 3 4 5 6; do
|
||||
mkdir "$fixture/releases/r$index"
|
||||
touch -t "20260716010${index}" "$fixture/releases/r$index"
|
||||
done
|
||||
printf 'metadata\n' > "$fixture/releases/._r1"
|
||||
|
||||
output=$(python3 "$SCRIPT_DIR/prune-release-history.py" "$fixture" 3 "$fixture/releases/r1")
|
||||
test "$output" = 'release_prune=ok before=6 kept=3 removed=3'
|
||||
test "$output" = 'release_prune=ok before=6 kept=3 removed=3 metadata_removed=1'
|
||||
test ! -e "$fixture/releases/._r1"
|
||||
test -d "$fixture/releases/r1"
|
||||
test -d "$fixture/releases/r6"
|
||||
test -d "$fixture/releases/r5"
|
||||
|
||||
Reference in New Issue
Block a user