Files
windmill/.github/workflows/sdk-tests.yml
T
dependabot[bot] 49e0974c07 chore(deps): bump astral-sh/setup-uv from 5 to 7 (#11258)
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 5 to 7.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v7)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-21 14:46:16 +00:00

81 lines
2.4 KiB
YAML

# The python and typescript SDK unit suites, on release tags only: they guard
# what gets published to npm / PyPI / JSR, and a tag is the moment that decides
# it.
#
# This runs alongside the publish workflows rather than ahead of them, so it
# reports a broken SDK rather than holding one back. Gating would mean putting
# the job inside each publish workflow, since Actions cannot express `needs`
# across workflows.
name: SDK Tests
on:
workflow_dispatch:
push:
tags:
- "v*"
jobs:
typescript-client:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
# No build step: these suites are deliberately free of the generated API
# client, so they run against the sources as committed.
- name: Run tests
working-directory: ./typescript-client
run: bun test --timeout 120000 tests/
chat-sdk:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: actions/setup-node@v7
with:
node-version: "20.x"
- name: Run tests
working-directory: ./chat-sdk
run: npm ci && npm run check && bun test
python-client:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup uv
uses: astral-sh/setup-uv@v7
# The interpreter is named explicitly: on a clean checkout uv picks the
# runner's system python and stops with "not compatible with the locked
# Python requirement" rather than fetching one. Keep in step with
# `requires-python` in uv.lock.
#
# Note this is not the version a worker runs the SDK on — those are 3.12.
# `uv.lock` asks for >=3.14, so pinning lower means regenerating it, which
# is worth doing separately.
- name: Install the interpreter the lockfile requires
run: uv python install 3.14
# `--frozen` so a drifted lockfile fails here rather than quietly
# resolving to something nobody has run.
- name: Run tests
working-directory: ./python-client/wmill
env:
PYTHONPATH: .
run: uv run --frozen --python 3.14 pytest tests/ -q