diff --git a/.github/workflows/update-qpk-pin.yml b/.github/workflows/update-qpk-pin.yml index 5b838a5..b3ff05a 100644 --- a/.github/workflows/update-qpk-pin.yml +++ b/.github/workflows/update-qpk-pin.yml @@ -9,6 +9,9 @@ on: - "constraints.txt" - ".github/workflows/open-downstream-qpk-pin-prs.yml" - ".github/workflows/update-qpk-pin.yml" + - "scripts/check_qpk_pin_consistency.py" + - "scripts/open_downstream_qpk_pin_prs.py" + - "tests/test_qpk_pin_consistency.py" - "tests/test_update_qpk_pin_workflow.py" - "docs/**" - "**.md" diff --git a/scripts/open_downstream_qpk_pin_prs.py b/scripts/open_downstream_qpk_pin_prs.py index c44336d..9cf1572 100644 --- a/scripts/open_downstream_qpk_pin_prs.py +++ b/scripts/open_downstream_qpk_pin_prs.py @@ -130,10 +130,21 @@ def update_aggregate_bundle( def verify_dependency_closure(repo_dir: Path) -> None: - run( - ["uv", "pip", "install", "--dry-run", "."], - cwd=repo_dir, - ) + with tempfile.TemporaryDirectory(prefix="qpk-resolver-") as tmp: + resolver_python = Path(tmp) / "bin" / "python" + run(["uv", "venv", "--python", sys.executable, tmp], cwd=repo_dir) + run( + [ + "uv", + "pip", + "install", + "--dry-run", + "--python", + str(resolver_python), + ".", + ], + cwd=repo_dir, + ) def update_qsl_compat_qpk_pin(repo_dir: Path, qpk_sha: str) -> bool: diff --git a/tests/test_update_qpk_pin_workflow.py b/tests/test_update_qpk_pin_workflow.py index 0faf620..a8e38db 100644 --- a/tests/test_update_qpk_pin_workflow.py +++ b/tests/test_update_qpk_pin_workflow.py @@ -233,6 +233,8 @@ def test_dependency_success_reaches_only_guarded_pr_step(tmp_path: Path) -> None "steps.verify.outcome == 'success'" ) in workflow assert ' - ".github/workflows/update-qpk-pin.yml"' in workflow + assert ' - "scripts/open_downstream_qpk_pin_prs.py"' in workflow + assert ' - "tests/test_qpk_pin_consistency.py"' in workflow assert ' - "tests/test_update_qpk_pin_workflow.py"' in workflow assert "workflow_dispatch:" not in workflow