Skip to content

Release (uv)

python | uv

uses: jambazid/gha-actions/.github/workflows/python-uv.yaml@unknown
permissions:
  contents: write
  pull-requests: write
  pages: write
  id-token: write

A GitHub Actions workflow for building and publishing Python packages using uv.


        flowchart TB
    job_scan[["scan"]]
    subgraph job_packaging["uv | packaging"]
        direction LR
        job_packaging_step_0("git | clone")
        job_packaging_step_1("docs | rumdl")
        job_packaging_step_0 --> job_packaging_step_1
        job_packaging_step_2("uv | setup")
        job_packaging_step_1 --> job_packaging_step_2
        job_packaging_step_3("uv | format")
        job_packaging_step_2 --> job_packaging_step_3
        job_packaging_step_4("uv | lint")
        job_packaging_step_3 --> job_packaging_step_4
        job_packaging_step_5("uv | tox")
        job_packaging_step_4 --> job_packaging_step_5
        job_packaging_step_6("uv | test")
        job_packaging_step_5 --> job_packaging_step_6
        job_packaging_step_7["uv | build"]
        job_packaging_step_6 --> job_packaging_step_7
        job_packaging_step_8("artifact | dist")
        job_packaging_step_7 --> job_packaging_step_8
    end
    subgraph job_release["uv | release"]
        direction LR
        job_release_step_0("artifacts | dist")
        job_release_step_1("release | pypi-test")
        job_release_step_0 --> job_release_step_1
        job_release_step_2("release | pypi")
        job_release_step_1 --> job_release_step_2
        job_release_step_3("release | create")
        job_release_step_2 --> job_release_step_3
    end
    subgraph job_pages["uv | pages"]
        direction LR
        job_pages_step_0("git | clone")
        job_pages_step_1("uv | setup")
        job_pages_step_0 --> job_pages_step_1
        job_pages_step_2("uv | zensical")
        job_pages_step_1 --> job_pages_step_2
        job_pages_step_3("pages | upload")
        job_pages_step_2 --> job_pages_step_3
        job_pages_step_4("pages | deploy")
        job_pages_step_3 --> job_pages_step_4
    end
    job_scan -.-> job_packaging
    job_packaging -.-> job_release
    job_release -.-> job_pages
        

Inputs: ¤

Name Description Default
publish-pages ¤

Whether to publish GitHub pages.

true
create-release ¤

Whether to create a new release.

true
github-repository ¤

GitHub repository path (defaults to this repository if unset).

working-directory ¤ python
python-version ¤
low-pct-coverage-threshold ¤ 60
high-pct-coverage-threshold ¤ 90
ssh-known-hosts ¤

Hosts to be added to the ~/.ssh/known_hosts file.

ssh-private-keys ¤

SSH private keys.

init-script ¤

Path to a preambulatory script for initialising any special dependencies.

tox ¤

Whether to run tox.

false
codecov-oidc ¤

Whether to use OIDC authentication with Codecov.

false

Secrets: ¤

Name Description
UV_SSH_PRIVATE_KEY ¤

SSH private key for a uv Git dependency.

PYPI_API_TOKEN ¤

PyPi token.

TEST_PYPI_API_TOKEN ¤

PyPi (test) token.

CODECOV_TOKEN ¤

Codecov token.