Skip to content

test: migrate to uv #174

test: migrate to uv

test: migrate to uv #174

Workflow file for this run

name: CI
on:
push:
branches: [main]
tags:
- "*.*.*"
pull_request:
jobs:
docs:
strategy:
matrix:
python-version:
- 3.9
- 3.13
theme: ["alabaster", "awesome", "furo", "pydata", "rtd"]
name: Build docs with ${{ matrix.theme }} theme on Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install nox
run: |
uv tool install nox
- name: Build docs with ${{ matrix.theme }}
run: |
nox -p ${{ matrix.python-version }} -s docs -- -t ${{ matrix.theme }}
env:
DOCSEARCH_APP_ID: test
DOCSEARCH_API_KEY: test
DOCSEARCH_INDEX_NAME: test
test:
strategy:
matrix:
python-version: ["3.9", "3.13"]
name: Test with Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install nox
run: |
uv tool install nox
- name: Run workflow
run: |
nox -p ${{ matrix.python-version }}
env:
DOCSEARCH_APP_ID: test
DOCSEARCH_API_KEY: test
DOCSEARCH_INDEX_NAME: test
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
- uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Install nox
run: |
uv tool install nox
- name: Lint Python code
run: nox -s lint
- name: Check links
run: nox -s check_links
build:
name: Build the package
runs-on: ubuntu-latest
needs:
- test
- lint
- docs
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Build packages
run: |
uv build
- uses: actions/upload-artifact@v4
with:
name: python-packages
path: dist/
publish:
name: Publish package to PyPI
runs-on: ubuntu-latest
needs:
- build
permissions:
id-token: write
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
steps:
- uses: actions/download-artifact@v4
with:
name: python-packages
path: dist/
- name: Upload to PyPI
uses: pypa/gh-action-pypi-publish@release/v1