From a1f98e240a65ee453c1f947d1256f1c6ddd21e97 Mon Sep 17 00:00:00 2001 From: Mathieu Kniewallner Date: Tue, 20 Aug 2024 00:12:11 +0200 Subject: [PATCH] docs(integration): show pinned version example on GH Actions (#6234) ## Summary Suggestion from https://github.com/astral-sh/uv/pull/6216#discussion_r1722204667. I did not think of a clean way to avoid repetition, so tried to use tabs for the platforms to only show the pin recommendation in one additional block. ![Screenshot from 2024-08-19 23-54-36](https://github.com/user-attachments/assets/8a870c68-da60-460a-8bda-4afb72d16b86) ## Test Plan Local run of the documentation. --- docs/guides/integration/github.md | 133 +++++++++++++++++++++++------- pyproject.toml | 1 + 2 files changed, 106 insertions(+), 28 deletions(-) diff --git a/docs/guides/integration/github.md b/docs/guides/integration/github.md index 37459298834d..6728a16bf216 100644 --- a/docs/guides/integration/github.md +++ b/docs/guides/integration/github.md @@ -2,47 +2,124 @@ ## Installation -uv installation differs depending on the platform. +uv installation differs depending on the platform: -### Unix +=== "Unix" -```yaml title="example.yml" -name: Example on Unix + ```yaml title="example.yml" + name: Example on Unix -jobs: - uv-example-linux: - name: python-linux - runs-on: ubuntu-latest + jobs: + uv-example-linux: + name: python-linux + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 + steps: + - uses: actions/checkout@v4 - - name: Set up uv - # Install uv using the standalone installer - run: curl -LsSf https://astral.sh/uv/install.sh | sh -``` + - name: Set up uv + # Install latest uv version using the installer + run: curl -LsSf https://astral.sh/uv/install.sh | sh + ``` -### Windows +=== "macOS" -```yaml title="example.yml" -name: Example on Windows + ```yaml title="example.yml" + name: Example on macOS -jobs: - uv-example-windows: - name: python-windows - runs-on: windows-latest + jobs: + uv-example-macos: + name: python-macos + runs-on: macos-latest - steps: - - uses: actions/checkout@v4 + steps: + - uses: actions/checkout@v4 - - name: Set up uv - # Install uv using the standalone installer - run: irm https://astral.sh/uv/install.ps1 | iex - shell: powershell -``` + - name: Set up uv + # Install latest uv version using the installer + run: curl -LsSf https://astral.sh/uv/install.sh | sh + ``` + +=== "Windows" + + ```yaml title="example.yml" + name: Example on Windows + + jobs: + uv-example-windows: + name: python-windows + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up uv + # Install latest uv version using the installer + run: irm https://astral.sh/uv/install.ps1 | iex + shell: powershell + ``` + +It is considered best practice to pin to a specific uv version, e.g., with: + +=== "Unix" + + ```yaml title="example.yml" + name: Example on Unix + + jobs: + uv-example-linux: + name: python-linux + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up uv + # Install a specific uv version using the installer + run: curl -LsSf https://astral.sh/uv/0.2.37/install.sh | sh + ``` + +=== "macOS" + + ```yaml title="example.yml" + name: Example on macOS + + jobs: + uv-example-macos: + name: python-macos + runs-on: macos-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up uv + # Install a specific uv version using the installer + run: curl -LsSf https://astral.sh/uv/0.2.37/install.sh | sh + ``` + +=== "Windows" + + ```yaml title="example.yml" + name: Example on Windows + + jobs: + uv-example-windows: + name: python-windows + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up uv + # Install a specific uv version using the installer + run: irm https://astral.sh/uv/0.2.37/install.ps1 | iex + shell: powershell + ``` ### Using a matrix +If you need to support multiple platforms, you can use a matrix: + ```yaml title="example.yml" name: Example diff --git a/pyproject.toml b/pyproject.toml index 3b0d476ff076..054720b5172c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,6 +68,7 @@ version_files = [ "crates/uv/Cargo.toml", "crates/uv-version/Cargo.toml", "docs/guides/integration/pre-commit.md", + "docs/guides/integration/github.md", ] [tool.uv]