Skip to content

Move benchmark code from nox to bm_runner #269

Move benchmark code from nox to bm_runner

Move benchmark code from nox to bm_runner #269

Workflow file for this run

# reference:
# - https://github.com/actions/cache
# - https://github.com/actions/checkout
name: benchmark-check
on:
pull_request:
push:
branches:
- "main"
- "v*x"
- "!auto-update-lockfiles"
- "!pre-commit-ci-update-config"
- "!dependabot/*"
tags:
- "v*"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
benchmark:
name: "performance benchmarks (py${{ matrix.python-version }})"
runs-on: ubuntu-latest
env:
PY_VER: "3.10"
IRIS_TEST_DATA_LOC_PATH: benchmarks
IRIS_TEST_DATA_PATH: benchmarks/iris-test-data
IRIS_TEST_DATA_VERSION: "2.19"
#: If you change the IRIS_SOURCE here you will also need to change it in
#: the noxfile and the tests and wheel workflows.
IRIS_SOURCE: "github:main"
ENV_CACHE_BUILD: "0"
TEST_DATA_CACHE_BUILD: "0"
strategy:
matrix:
python-version: ["3.10"]
steps:
- name: "checkout"
uses: actions/checkout@v4
with:
fetch-depth: 0
- if: ${{ github.event_name == 'pull_request' }}
# TODO: remove this, so we can benchmark using GHA's default
# commit - a simulated merge. Requires adapting
# --session="benchmarks(branch)" to accept inputs for both
# commits to compare (instead of deriving one of them).
# Currently, this checks out the HEAD of the pull request.
run: git checkout HEAD^2
- name: Install ASV & Nox
run: |
pip install asv nox
- name: Cache environment directories
uses: actions/cache@v4
with:
path: |
.nox
benchmarks/.asv/env
$CONDA/pkgs
key: ${{ runner.os }}-${{ hashFiles('requirements/') }}-${{ env.ENV_CACHE_BUILD }}-${{ env.IRIS_SOURCE }}
- name: Benchmark script
run: |
if ${{ github.event_name != 'pull_request' }}; then export COMPARE="HEAD~"; else export COMPARE="origin/${{ github.base_ref }}"; fi;
python benchmarks/bm_runner.py branch ${COMPARE}
- name: Archive ASV results
uses: actions/upload-artifact@v4
with:
name: asv-report
path: |
benchmarks/.asv/results