Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Keep docker build contexts light: images COPY only pyproject.toml,
# README.md, LICENSE and serviette/ (see benchmarks/*/Dockerfile).
.git
.venv*
benchmarks
docs
tests
results
**/__pycache__
66 changes: 0 additions & 66 deletions .github/ISSUE_TEMPLATE/bug_report.yml

This file was deleted.

8 changes: 0 additions & 8 deletions .github/ISSUE_TEMPLATE/config.yml

This file was deleted.

Binary file removed .github/assets/banner.png
Binary file not shown.
Binary file removed .github/assets/streamlit_chat.png
Binary file not shown.
Binary file removed .github/assets/video-th.png
Binary file not shown.
27 changes: 0 additions & 27 deletions .github/pull_request_template.md

This file was deleted.

125 changes: 125 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# CI: lint + fast unit tests on every push/PR; the engine-backed suites
# (slow e2e, per-database integration) run when the PATHWAY_LICENSE_KEY
# secret is configured and skip gracefully when it is not.
#
# All dependencies come from PyPI (pathway >= 0.32.1 ships everything
# serviette needs); uv is kept for install speed only.

name: CI

on:
push:
branches: [main]
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
lint-and-fast:
name: lint + fast tests (py${{ matrix.python }})
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
python: ["3.10", "3.12", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- uses: actions/cache@v4
with:
path: ~/.cache/uv
key: uv-${{ runner.os }}-py${{ matrix.python }}-${{ hashFiles('pyproject.toml') }}
- name: Install
run: |
pip install -U uv
uv venv .venv
# pyfilesystem here is a CI-environment choice, not a package
# dependency: it keeps the optional-source tests exercised instead
# of being skipped (they importorskip when the extra is absent).
uv pip install --python .venv/bin/python -e ".[dev,local,pyfilesystem]"
.venv/bin/python -c "import pathway; print('pathway', pathway.__version__)"
- name: Ruff
run: .venv/bin/python -m ruff check serviette tests
- name: Fast tests
run: .venv/bin/python -m pytest tests/ -m "not slow and not integration" -q

slow:
name: e2e indexer / up / demo smoke
runs-on: ubuntu-latest
timeout-minutes: 75
needs: lint-and-fast
steps:
- uses: actions/checkout@v4
- name: Check license secret
id: license
run: |
if [ -n "${{ secrets.PATHWAY_LICENSE_KEY }}" ]; then
echo "present=true" >> "$GITHUB_OUTPUT"
else
echo "present=false" >> "$GITHUB_OUTPUT"
echo "::warning::PATHWAY_LICENSE_KEY secret is not set — skipping the engine-backed suite"
fi
- uses: actions/setup-python@v5
if: steps.license.outputs.present == 'true'
with:
python-version: "3.12"
- uses: actions/cache@v4
if: steps.license.outputs.present == 'true'
with:
path: ~/.cache/uv
key: uv-${{ runner.os }}-py3.12-${{ hashFiles('pyproject.toml') }}
- name: Install
if: steps.license.outputs.present == 'true'
run: |
pip install -U uv
uv venv .venv
uv pip install --python .venv/bin/python -e ".[dev,local,pyfilesystem]"
- name: Slow tests (multimodal parser tests excluded — they download models)
if: steps.license.outputs.present == 'true'
env:
PATHWAY_LICENSE_KEY: ${{ secrets.PATHWAY_LICENSE_KEY }}
run: |
.venv/bin/python -m pytest tests/ -m "slow and not integration" -q \
--ignore=tests/test_multimodal_parsers.py

integration:
name: vector-DB integration matrix (docker)
runs-on: ubuntu-latest
timeout-minutes: 90
needs: lint-and-fast
steps:
- uses: actions/checkout@v4
- name: Check license secret
id: license
run: |
if [ -n "${{ secrets.PATHWAY_LICENSE_KEY }}" ]; then
echo "present=true" >> "$GITHUB_OUTPUT"
else
echo "present=false" >> "$GITHUB_OUTPUT"
echo "::warning::PATHWAY_LICENSE_KEY secret is not set — skipping the integration matrix"
fi
- uses: actions/setup-python@v5
if: steps.license.outputs.present == 'true'
with:
python-version: "3.12"
- uses: actions/cache@v4
if: steps.license.outputs.present == 'true'
with:
path: ~/.cache/uv
key: uv-${{ runner.os }}-py3.12-${{ hashFiles('pyproject.toml') }}
- name: Install
if: steps.license.outputs.present == 'true'
run: |
pip install -U uv
uv venv .venv
uv pip install --python .venv/bin/python -e ".[dev,all,local,pyfilesystem,sharepoint]"
- name: Integration tests
if: steps.license.outputs.present == 'true'
env:
PATHWAY_LICENSE_KEY: ${{ secrets.PATHWAY_LICENSE_KEY }}
run: .venv/bin/python -m pytest tests/ -m integration -q
33 changes: 0 additions & 33 deletions .github/workflows/python-lint.yml

This file was deleted.

Loading
Loading