ARROW-184 API Docs are not rendered in Latest Docs #441
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 libbson | |
run: | | |
LIBBSON_INSTALL_DIR=$(pwd)/libbson ./build-libbson.sh | |
- name: Install Python dependencies | |
run: | | |
python -m pip install -U pip | |
python -m pip install asv virtualenv | |
- name: Run benchmarks | |
run: | | |
set -eux | |
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 -e --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 -- | |
# Install the library | |
LIBBSON_INSTALL_DIR=$(pwd)/libbson python -m pip install -e ".[test]" | |
run_asv | |
git checkout --force refs/bm/merge-target -- | |
# Install the library | |
LIBBSON_INSTALL_DIR=$(pwd)/libbson python -m pip install -e ".[test]" | |
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" |