| --- |
| 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 |