Skip to content
54 changes: 54 additions & 0 deletions .github/workflows/clone-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Clone Tests

# Focused, fast signal for the clone tooling — runs only the clone suite when
# clone code, its tests, or the dependency set changes. The full suite in
# test.yml still runs on every PR; this gates the pagination page-following
# logic (client._paginate) that silently truncates a migration if it regresses.
on:
pull_request:
branches: [main, "feat/**", "fix/**"]
paths:
- "src/unstract/clone/**"
- "tests/clone/**"
- "pyproject.toml"
- "uv.lock"
- ".github/workflows/clone-tests.yml"
push:
branches: [main]
paths:
- "src/unstract/clone/**"
- "tests/clone/**"
- "pyproject.toml"
- "uv.lock"
- ".github/workflows/clone-tests.yml"

jobs:
clone-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12"]
steps:
# Actions pinned to full commit SHAs (immutable) — a moved major-version
# tag can't inject unreviewed code into CI. Comment tracks the version.
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0

- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
with:
version: "0.6.14"
enable-cache: true

- name: Install dependencies
run: uv sync --dev --all-extras

- name: Create test env
run: cp tests/sample.env tests/.env

- name: Clone tests (pytest)
run: uv run pytest tests/clone/ -v
Loading
Loading