Skip to content

Merge pull request #22 from LSSTDESC/add_benchmarks #3

Merge pull request #22 from LSSTDESC/add_benchmarks

Merge pull request #22 from LSSTDESC/add_benchmarks #3

Workflow file for this run

# This workflow will run benchmarks with airspeed velocity (asv),
# store the new results in the "benchmarks" branch and publish them
# to a dashboard on GH Pages.
name: Run ASV benchmarks for main
on:
push:
branches: [ main ]
env:
PYTHON_VERSION: "3.10"
ASV_VERSION: "0.6.4"
WORKING_DIR: ${{github.workspace}}/benchmarks
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
asv-main:
runs-on: ubuntu-latest
permissions:
contents: write
defaults:
run:
working-directory: ${{env.WORKING_DIR}}
steps:
- name: Set up Python ${{env.PYTHON_VERSION}}
uses: actions/setup-python@v5
with:
python-version: ${{env.PYTHON_VERSION}}
- name: Checkout main branch of the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: pip install "asv[virtualenv]==${{env.ASV_VERSION}}"
- name: Configure git
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Create ASV machine config file
run: asv machine --machine gh-runner --yes
- name: Fetch previous results from the "benchmarks" branch
run: |
if git ls-remote --exit-code origin benchmarks > /dev/null 2>&1; then
git merge origin/benchmarks \
--allow-unrelated-histories \
--no-commit
mv ../_results .
fi
- name: Run ASV for the main branch
run: asv run ALL --skip-existing --verbose || true
- name: Submit new results to the "benchmarks" branch
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: benchmarks
folder: ${{env.WORKING_DIR}}/_results
target-folder: _results
- name: Generate dashboard HTML
run: |
asv show
asv publish
- name: Deploy to Github pages
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: ${{env.WORKING_DIR}}/_html