Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,9 @@ jobs:

- name: Install pipx for published package smoke
run: |
python -m pip install pipx
mkdir -p "$RUNNER_TEMP/bin"
printf '%s\n' '#!/usr/bin/env bash' "exec python -c 'from pipx.main import cli; raise SystemExit(cli())' \"\$@\"" > "$RUNNER_TEMP/bin/pipx"
chmod +x "$RUNNER_TEMP/bin/pipx"
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
uv venv
uv pip install pipx
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Run published install smoke matrix
run: |
Expand Down
8 changes: 3 additions & 5 deletions .github/workflows/published-install-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@ jobs:

- name: Install pipx for published package smoke
run: |
python -m pip install pipx
mkdir -p "$RUNNER_TEMP/bin"
printf '%s\n' '#!/usr/bin/env bash' "exec python -c 'from pipx.main import cli; raise SystemExit(cli())' \"\$@\"" > "$RUNNER_TEMP/bin/pipx"
chmod +x "$RUNNER_TEMP/bin/pipx"
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
uv venv
uv pip install pipx
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Run published install smoke matrix
run: |
Expand Down
12 changes: 6 additions & 6 deletions tests/test_published_install_smoke.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,19 @@ def test_published_install_script_uses_package_json_version_by_default() -> None
assert version == package_json["version"]


def test_published_install_workflows_use_python_module_pipx_wrapper() -> None:
def test_published_install_workflows_install_pipx_into_uv_venv() -> None:
workflow_paths = [
REPO_ROOT / ".github" / "workflows" / "published-install-smoke.yml",
REPO_ROOT / ".github" / "workflows" / "publish.yml",
]

for workflow_path in workflow_paths:
content = workflow_path.read_text()
assert "python -m pip install pipx" in content
assert "from pipx.main import cli; raise SystemExit(cli())" in content
assert "printf '%s\\n' '#!/usr/bin/env bash'" in content
assert "uv venv" in content
assert "uv pip install pipx" in content
assert 'echo "$PWD/.venv/bin" >> "$GITHUB_PATH"' in content
assert "pip install --user pipx" not in content
assert "pipx.main" not in content


def test_published_install_script_appends_isolated_bootstrap_paths(tmp_path: Path) -> None:
Expand Down Expand Up @@ -126,8 +127,7 @@ def test_standalone_published_install_workflow_is_manual() -> None:
assert "version:" in workflow
assert "scripts/smoke_published_install.py" in workflow
assert "default: '18'" in workflow
assert "python -m pip install pipx" in workflow
assert "from pipx.main import cli; raise SystemExit(cli())" in workflow
assert "uv pip install pipx" in workflow


def test_published_install_script_does_not_mask_missing_required_tool(monkeypatch: pytest.MonkeyPatch) -> None:
Expand Down