Skip to content

Expose man pages for editable local installs #3689

Expose man pages for editable local installs

Expose man pages for editable local installs #3689

Workflow file for this run

name: 🧪 tests
on:
workflow_dispatch:
push:
branches:
- "main"
pull_request:
schedule:
- cron: "0 8 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
name: 🧪 test ${{ matrix.py }} - ${{ matrix.os }}
runs-on: ${{ matrix.os }}
timeout-minutes: 40
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
py: ["3.13", "3.12", "3.11", "3.10"]
include:
- os: windows-2025
py: "3.13"
- os: macos-15
py: "3.13"
steps:
- name: 📥 Checkout code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
persist-credentials: false
- name: 🚀 Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
- name: 🐍 Setup Python ${{ matrix.py }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.py }}
- name: 📦 Install tox
run: uv tool install --python-preference only-managed --python 3.13 "tox>=4.45" --with tox-uv
- name: Persistent .pipx_tests/package_cache
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ github.workspace }}/.pipx_tests/package_cache/${{ matrix.py }}
key: pipx-tests-package-cache-${{ runner.os }}-${{ matrix.py }}
- name: 🏗️ Setup test suite
run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.py }}
- name: 📦 Seed package cache
run: tox exec -e ${{ matrix.py }} -- python scripts/update_package_cache.py testdata/tests_packages .pipx_tests/package_cache/
- name: 🏃 Run test suite
run: tox run --skip-pkg-install -e ${{ matrix.py }}
timeout-minutes: 30
env:
PYTEST_ADDOPTS: "-vv --durations=20"
man:
name: 📖 Build man page
runs-on: ubuntu-24.04
steps:
- name: 📥 Checkout code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: 🚀 Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
- name: 📦 Install tox
run: uv tool install --python-preference only-managed --python 3.13 "tox>=4.45" --with tox-uv
- name: 📖 Build man page
run: tox run -e man
- name: Show man page
run: man -l pipx.1
zipapp:
name: 📦 Build zipapp
runs-on: ubuntu-24.04
steps:
- name: 📥 Checkout code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: 🐍 Setup Python 3.10
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.10"
- name: 📦 Build zipapp
run: |
pip install shiv
shiv -c pipx -o ./pipx.pyz .
./pipx.pyz --version
- name: Test zipapp by installing black
run: python ./pipx.pyz install black
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: pipx.pyz
path: pipx.pyz
retention-days: 3