Skip to content

INTPYTHON-165 Refactor nested data handling #646

INTPYTHON-165 Refactor nested data handling

INTPYTHON-165 Refactor nested data handling #646

Workflow file for this run

name: Python Benchmark
on:
pull_request:
concurrency:
group: benchmark-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
working-directory: ./bindings/python
shell: bash
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-22.04"]
python-version: ["3.10"]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.cfg'
- name: Start MongoDB
uses: supercharge/[email protected]
with:
mongodb-version: 6.0
- name: Install tox
run: |
python -m pip install tox
- name: Install libbson
run: |
tox -e build-libbson
- name: Run benchmarks
run: |
set -eux
run_asv () {
if [ ! -e "tox.ini" ] ; then
git checkout refs/bm/pr tox.ini
fi
git show --no-patch --format="%H (%s)"
export LIBBSON_INSTALL_DIR=$(pwd)/libbson
tox -e benchmark -- --set-commit-hash $(git rev-parse HEAD)
}
pip install asv
asv machine --yes
git fetch origin main:main
git update-ref refs/bm/pr HEAD
# We know this is a PR run. The branch is a GitHub refs/pull/*/merge ref, so
# the current target that this PR will be merged into is HEAD^1.
git update-ref refs/bm/merge-target $(git log -n 1 --pretty=format:"%H" main --)
git checkout --force refs/bm/pr --
run_asv
git checkout --force refs/bm/merge-target --
run_asv
- name: Compare benchmarks
run: |
asv compare refs/bm/merge-target refs/bm/pr --
- name: Fail if any benchmarks have slowed down too much
run: |
! asv compare --factor 1.2 --split refs/bm/merge-target refs/bm/pr | grep -q "got worse"