Skip to content

OPT: use set O(log(n)) instead of list O(n) for checking if modified … #1015

OPT: use set O(log(n)) instead of list O(n) for checking if modified …

OPT: use set O(log(n)) instead of list O(n) for checking if modified … #1015

Workflow file for this run

name: Benchmarks
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name }}
cancel-in-progress: true
jobs:
vs-master:
runs-on: ubuntu-latest
steps:
- name: Set up system
shell: bash
run: |
bash <(wget -q -O- http://neuro.debian.net/_files/neurodebian-travis.sh)
sudo apt-get update -qq
sudo apt-get install eatmydata
sudo eatmydata apt-get install git-annex-standalone
- name: Set up environment
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Almighty"
# Prevent interactive credential entry
# See also the GIT_ASKPASS env var below
git config --global core.askPass ""
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install ".[devel-docs]"
# the benchmarks use `ls`
pip install datalad_deprecated
- name: Run benchmarks
env:
# fake environment to be able to reuse script for travis
TRAVIS_PULL_REQUEST: true
# Prevent interactive credential entry (note "true" is the command to run)
GIT_ASKPASS: true
run: |
tools/ci/benchmark-travis-pr.sh
- name: Compare
run: |
# Invocation from tools/ci/benchmark-travis-pr.sh for convenience
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"