Skip to content

ARROW-180 Support PyArrow 13 #412

ARROW-180 Support PyArrow 13

ARROW-180 Support PyArrow 13 #412

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@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.cfg'
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.9.0
with:
mongodb-version: 6.0
- name: Install Python dependencies
run: |
python -m pip install -U pip
python -m pip install asv virtualenv
- name: Run benchmarks
run: |
set -eu
run_asv () {
if [ ! -e "asv.conf.json" ] ; then
git checkout refs/bm/pr asv.conf.json
git checkout refs/bm/pr benchmarks/__init__.py
git checkout refs/bm/pr benchmarks/benchmarks.py
fi
git show --no-patch --format="%H (%s)"
asv run --python=`which python` --set-commit-hash $(git rev-parse HEAD)
}
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 --
# Build and install the manylinux wheel
bash ./build-manylinux-wheel.sh
pip install dist/*.whl
run_asv
git checkout --force refs/bm/merge-target --
# Build and install the manylinux wheel
bash ./build-manylinux-wheel.sh
pip install dist/*.whl
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"