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
31 changes: 28 additions & 3 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,37 @@ permissions:

jobs:
benchmark:
name: "Benchmark"
name: "Benchmark (${{ matrix.shard }})"
runs-on: ubuntu-latest
timeout-minutes: 15
timeout-minutes: 5
permissions:
contents: read
id-token: write
strategy:
fail-fast: false
matrix:
include:
# CI tests only (not slow) for fast PR feedback
# Slow tests excluded - they take ~24s each vs ~7s for CI tests
- shard: "load-reload"
filter: "TestBenchLoad or TestBenchReload"
marker: "benchmark and not slow"
- shard: "get"
filter: "TestBenchGet"
marker: "benchmark and not slow"
- shard: "find"
filter: "TestBenchFind and not TestBenchFindOne"
marker: "benchmark and not slow"
- shard: "find-one-delete"
filter: "TestBenchFindOne or TestBenchDelete"
- shard: "write-compact"
filter: "TestBenchPut or TestBenchBatchWrite or TestBenchCompact"
- shard: "all-keys-items"
filter: "TestBenchAll or TestBenchKeys or TestBenchItems"
marker: "benchmark and not slow"
- shard: "count-has"
filter: "TestBenchCount or TestBenchHas"
marker: "benchmark and not slow"

steps:
- name: Checkout code
Expand All @@ -50,4 +75,4 @@ jobs:
uses: CodSpeedHQ/action@346a2d8a8d9d38909abd0bc3d23f773110f076ad # v4.4.1
with:
mode: simulation
run: uv run pytest -m benchmark --codspeed
run: uv run pytest -m "${{ matrix.marker || 'benchmark' }}" -k "${{ matrix.filter }}" --codspeed
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "uv_build"

[project]
name = "jsonlt-python"
version = "0.1.0a2"
version = "0.1.0a3"
description = "Reference implementation of the JSONLT (JSON Lines Table) specification for Python."
readme = "README.md"
license = "MIT"
Expand Down Expand Up @@ -99,6 +99,7 @@ markers = [
"conformance: mark a test as a conformance test.",
"example: mark a test as a documentation example test.",
"fuzz: mark a test as a fuzz test.",
"limit_memory: mark a test with memory limit (pytest-memray marker).",
"slow: mark a test as slow (excluded by default, run with -m slow).",
"integration: mark a test as an integration test.",
"property: mark a test as a property test.",
Expand Down
Loading