| --- | |
| name: CodSpeed Benchmarks | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ["*"] | |
| paths: | |
| - src/**.py | |
| - bench/** | |
| - codspeed.yml | |
| - .github/workflows/codspeed.yml | |
| pull_request: | |
| paths: | |
| - src/**.py | |
| - bench/** | |
| - codspeed.yml | |
| - .github/workflows/codspeed.yml | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| FORCE_COLOR: "1" | |
| permissions: {} | |
| jobs: | |
| codspeed: | |
| name: Run CodSpeed benchmarks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version-file: .python-version-default | |
| - uses: hynek/setup-cached-uv@34e35d30f1ebc7421a5cc733bca38dcc62603960 # v2.6.0 | |
| - name: Run CodSpeed benchmarks | |
| uses: CodSpeedHQ/action@88472375d0a4572cf70a9f1fe3a4e0ab8da1b924 # v5.0.1 | |
| with: | |
| mode: simulation | |
| run: uvx --with tox-uv tox run -e codspeed | |
| imports: | |
| name: Measure import times | |
| runs-on: codspeed-macro | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version-file: .python-version-default | |
| - uses: hynek/setup-cached-uv@34e35d30f1ebc7421a5cc733bca38dcc62603960 # v2.6.0 | |
| - name: Install attrs | |
| run: uv pip install --system --compile-bytecode . | |
| - name: Run import benchmarks | |
| uses: CodSpeedHQ/action@88472375d0a4572cf70a9f1fe3a4e0ab8da1b924 # v5.0.1 | |
| with: | |
| mode: walltime |