This commit is contained in:
Mateusz Gruszczyński committed 2026-11-03 10:29:41 +01:00
1 parent 60ec470f9f
commit fe2ad1590d
9 files changed
+186 -19

No files matched your search

+47 -1
View File
@@ -1,4 +1,7 @@
from pathlib import Path
import os
import subprocess
import tempfile
import tomllib
ROOT = Path(__file__).resolve().parents[1]
@@ -85,4 +88,47 @@ def test_rustup_installation_and_runtime_cargo_home_are_consistent():
assert "CARGO_HOME=/opt/cargo" in dockerfile
runtime_env = dockerfile.split("ENV DATA_DIR=/var/lib/rustbox-package-builder", 1)[1]
assert "CARGO_HOME=/var/lib/rustbox-package-builder/cargo" not in runtime_env
assert "CARGO_TARGET_DIR=/var/lib/rustbox-package-builder/cargo/target" in runtime_env
assert "CARGO_TARGET_DIR=/tmp/rustbox-package-builder/cargo-target" in runtime_env
assert "CARGO_TARGET_DIR=/var/lib/rustbox-package-builder/cargo/target" not in runtime_env
def test_build_cache_cleanup_and_package_retention_defaults():
env = (ROOT / ".env.example").read_text()
compose = (ROOT / "docker-compose.yml").read_text()
entrypoint = (ROOT / "scripts/entrypoint.sh").read_text()
build = (ROOT / "scripts/build-release.sh").read_text()
assert "PACKAGE_RETENTION=10" in env
assert "CLEAN_BUILD_CACHE=1" in env
assert 'PACKAGE_RETENTION: "${PACKAGE_RETENTION:-10}"' in compose
assert 'CLEAN_BUILD_CACHE: "${CLEAN_BUILD_CACHE:-1}"' in compose
assert 'rm -rf -- "$DATA_DIR/work/out" "$DATA_DIR/work/package" "$DATA_DIR/cargo/target"' in entrypoint
assert 'trap cleanup_build_artifacts EXIT' in build
assert 'aptly -config="$APTLY_CONF" db cleanup' in build
assert 'cp -al "$DATA_DIR/packages/rpm/x86_64/." "$RELEASE_DIR/rpm/x86_64/"' in build
def test_prune_package_files_keeps_only_newest_ten():
with tempfile.TemporaryDirectory() as tmp:
root = Path(tmp)
pkg = root / "deb"
pkg.mkdir()
for idx in range(12):
path = pkg / f"rustbox_0.2.{idx}-1_amd64.deb"
path.write_bytes(str(idx).encode())
ts = 1_700_000_000 + idx
os.utime(path, (ts, ts))
script = "\n".join([
"set -Eeuo pipefail",
f"source {ROOT / 'scripts/lib.sh'}",
f"prune_package_files {pkg} 'rustbox_*.deb' 10",
])
subprocess.run(["bash", "-lc", script], check=True)
remaining = sorted(p.name for p in pkg.glob("*.deb"))
assert len(remaining) == 10
assert "rustbox_0.2.0-1_amd64.deb" not in remaining
assert "rustbox_0.2.1-1_amd64.deb" not in remaining
assert "rustbox_0.2.11-1_amd64.deb" in remaining