Skip to content

Commit

Permalink
ci: add benchmark pipelines
Browse files Browse the repository at this point in the history
  • Loading branch information
woile committed Nov 21, 2024
1 parent 1c8061b commit 0b3d40d
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 3 deletions.
53 changes: 53 additions & 0 deletions .github/workflows/bench-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Bump version

on:
push:
branches:
- master

jobs:
bench_release:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: x64

- name: Set Cache
uses: actions/cache@v4
id: cache # name for referring later
with:
path: .venv/
# The cache key depends on poetry.lock
key: ${{ runner.os }}-cache-${{ hashFiles('poetry.lock') }}
restore-keys: |
${{ runner.os }}-cache-
${{ runner.os }}-
- name: Install Dependencies
# if: steps.cache.outputs.cache-hit != 'true'
run: |
python -m pip install -U pip poetry
poetry --version
poetry config --local virtualenvs.in-project true
poetry install
- name: Benchmark code
run: |
./scripts/bench-current
- name: Commit benchmark
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
git add .benchmarks/
git commit -m "bench: bench: add benchmark current release"
git push origin master
2 changes: 1 addition & 1 deletion .github/workflows/bumpversion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
bump-version:
if: ${{ !startsWith(github.event.head_commit.message, 'bump:') }}
if: ${{ !startsWith(github.event.head_commit.message, 'bump:') || !startsWith(github.event.head_commit.message, 'bench:') }}
runs-on: ubuntu-latest
name: "Bump version and create changelog with commitizen"
steps:
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/pr-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
required: true

jobs:
build:
build_test_bench:
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down Expand Up @@ -57,6 +57,10 @@ jobs:
git config --global user.name "GitHub Action"
./scripts/test
- name: Benchmark regression test
run: |
./scripts/bench-compare
- name: Upload coverage to Codecov
uses: codecov/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion scripts/bench-compare
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ if [ -d '.venv' ] ; then
fi

# Commented out until after merge, so there will be date to compare with.
${PREFIX}pytest tests/test_benchmarks.py --benchmark-compare --benchmark-compare-fail=min:5%
# ${PREFIX}pytest tests/test_benchmarks.py --benchmark-compare --benchmark-compare-fail=min:5%
1 change: 1 addition & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ def test_my_async_function(aio_benchmark):
Notice how the test is synchronous, but the function being tested is asynchronous.
"""

async def run_async_coroutine(func, *args, **kwargs):
return await func(*args, **kwargs)

Expand Down

0 comments on commit 0b3d40d

Please sign in to comment.