-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Add benchmark tests #9654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add benchmark tests #9654
Changes from all commits
d42ed83
129230c
624c551
a5d3c4c
c286b6b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
| @@ -0,0 +1,104 @@ | ||||
| name: Benchmark | ||||
|
|
||||
| on: | ||||
| push: | ||||
| branches: | ||||
| - "**" | ||||
| paths-ignore: &paths-ignore | ||||
| - ".github/workflows/docs.yml" | ||||
| - ".github/workflows/wheels*" | ||||
| - ".gitmodules" | ||||
| - "docs/**" | ||||
| - "wheels/**" | ||||
| pull_request: | ||||
| paths-ignore: *paths-ignore | ||||
| workflow_dispatch: | ||||
|
|
||||
| permissions: | ||||
| contents: read | ||||
|
|
||||
| concurrency: | ||||
| group: ${{ github.workflow }}-${{ github.ref }} | ||||
| cancel-in-progress: true | ||||
|
|
||||
| env: | ||||
| FORCE_COLOR: 1 | ||||
| PIP_DISABLE_PIP_VERSION_CHECK: 1 | ||||
|
|
||||
| jobs: | ||||
| benchmark: | ||||
|
|
||||
| strategy: | ||||
| fail-fast: false | ||||
| matrix: | ||||
| os: [ | ||||
| "ubuntu-latest", | ||||
| ] | ||||
| python-version: [ | ||||
| # NB: Codspeed doesn't seem to support multiple runs of the same benchmark: | ||||
| # > At least one benchmark was run multiple times in your benchmarking workflow. | ||||
| # > This could be because you used a matrix that runs your benchmarks multiple times. | ||||
| # Hence, this list should only ever have exactly one version. | ||||
| "3.14", | ||||
| ] | ||||
|
|
||||
| runs-on: ${{ matrix.os }} | ||||
| name: Benchmark ${{ matrix.os }} Python ${{ matrix.python-version }} | ||||
|
|
||||
| steps: | ||||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | ||||
| with: | ||||
| persist-credentials: false | ||||
|
|
||||
| - name: Set up Python ${{ matrix.python-version }} | ||||
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | ||||
| with: | ||||
| python-version: ${{ matrix.python-version }} | ||||
| allow-prereleases: true | ||||
| cache: pip | ||||
| cache-dependency-path: | | ||||
| ".ci/*.sh" | ||||
| "pyproject.toml" | ||||
|
|
||||
| - name: Cache libavif | ||||
| if: startsWith(matrix.os, 'ubuntu') | ||||
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | ||||
| id: cache-libavif | ||||
| with: | ||||
| path: ~/cache-libavif | ||||
| key: ${{ runner.os }}-libavif-${{ hashFiles('depends/install_libavif.sh', 'depends/libavif-svt4.patch') }} | ||||
|
|
||||
| - name: Cache libimagequant | ||||
| if: startsWith(matrix.os, 'ubuntu') | ||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | ||||
| id: cache-libimagequant | ||||
| with: | ||||
| path: ~/cache-libimagequant | ||||
| key: ${{ runner.os }}-libimagequant-${{ hashFiles('depends/install_imagequant.sh') }} | ||||
|
|
||||
| - name: Cache libwebp | ||||
| if: startsWith(matrix.os, 'ubuntu') | ||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | ||||
| id: cache-libwebp | ||||
| with: | ||||
| path: ~/cache-libwebp | ||||
| key: ${{ runner.os }}-libwebp-${{ hashFiles('depends/install_webp.sh') }} | ||||
|
|
||||
| - name: Install Linux dependencies | ||||
| if: startsWith(matrix.os, 'ubuntu') | ||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||
| run: | | ||||
| .ci/install.sh | ||||
| env: | ||||
| GHA_PYTHON_VERSION: ${{ matrix.python-version }} | ||||
| GHA_LIBAVIF_CACHE_HIT: ${{ steps.cache-libavif.outputs.cache-hit }} | ||||
| GHA_LIBIMAGEQUANT_CACHE_HIT: ${{ steps.cache-libimagequant.outputs.cache-hit }} | ||||
| GHA_LIBWEBP_CACHE_HIT: ${{ steps.cache-libwebp.outputs.cache-hit }} | ||||
|
|
||||
| - name: Run CodSpeed benchmarks | ||||
| uses: CodSpeedHQ/action@a4a36bb07c0638b0b4ca52bf1f3dad1b4289e52f # v4.18.1 | ||||
| if: ${{ matrix.os == 'ubuntu-latest' }} | ||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Redundant:
Suggested change
|
||||
| with: | ||||
| mode: simulation | ||||
| run: | | ||||
| python3 -m pip install -e . pytest-codspeed | ||||
| pytest -vv --codspeed Tests/benchmarks.py | ||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.