Skip to content

build(deps): bump taiki-e/install-action from 2.85.7 to 2.85.8 #3427

build(deps): bump taiki-e/install-action from 2.85.7 to 2.85.8

build(deps): bump taiki-e/install-action from 2.85.7 to 2.85.8 #3427

Workflow file for this run

name: Benchmarks
on:
push:
branches:
- "master"
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
rust:
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
matrix:
include:
- name: jsonschema
package: jsonschema
features: "--features macros"
benches: "--bench jsonschema --bench keywords --bench errors --bench location --bench metaschema --bench unevaluated_items --bench unevaluated_properties"
- name: codegen
package: jsonschema
features: "--features macros"
benches: "--bench codegen"
- name: canonicalize
package: jsonschema
# Both bindings canonicalize with arbitrary precision and the compile-time metaschema
# validators, so the numeric work and the schema check this bench measures are the ones
# they actually run.
features: "--features macros,arbitrary-precision"
benches: "--bench canonicalize"
- name: codegen-generate
package: jsonschema-macros-core
features: "--features bench"
benches: "--bench generate"
- name: referencing
package: referencing
features: ""
benches: ""
name: "Run benchmarks (${{ matrix.name }})"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
save-if: ${{ github.ref == 'refs/heads/master' }}
key: ${{ matrix.name }}
- run: cargo install cargo-codspeed --force
- run: cargo codspeed build -p ${{ matrix.package }} ${{ matrix.features }} ${{ matrix.benches }}
- uses: CodSpeedHQ/action@0ca9cbbf4623b599a6c3ed4fc8a922942705d9f1 # v5.0.2
with:
run: cargo codspeed run -p ${{ matrix.package }}
mode: "simulation"
token: ${{ secrets.CODSPEED_TOKEN }}
python:
runs-on: ubuntu-24.04
timeout-minutes: 30
name: "Run benchmarks (python)"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dtolnay/rust-toolchain@stable
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
- run: uv python install 3.14
- name: Build and install extension
working-directory: crates/jsonschema-py
env:
MATURIN_STRIP: "false"
CARGO_PROFILE_RELEASE_DEBUG: line-tables-only
run: |
uv venv --python 3.14
uv pip install ".[bench]"
- uses: CodSpeedHQ/action@0ca9cbbf4623b599a6c3ed4fc8a922942705d9f1 # v5.0.2
with:
working-directory: crates/jsonschema-py
run: .venv/bin/pytest benches/bench.py -k '(jsonschema-rs or not jsonschema) and not py-parse' --codspeed
mode: "simulation"
token: ${{ secrets.CODSPEED_TOKEN }}
ruby:
runs-on: ubuntu-24.04
timeout-minutes: 30
name: "Run benchmarks (ruby)"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dtolnay/rust-toolchain@stable
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
working-directory: crates/jsonschema-rb
ruby-version: .ruby-version
bundler-cache: true
- name: Build extension
working-directory: crates/jsonschema-rb
run: bundle exec rake compile
- uses: CodSpeedHQ/action@0ca9cbbf4623b599a6c3ed4fc8a922942705d9f1 # v5.0.2
with:
working-directory: crates/jsonschema-rb
config: crates/jsonschema-rb/codspeed.yml
mode: "simulation"
token: ${{ secrets.CODSPEED_TOKEN }}