Test PGO gather segfault #117
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CodSpeed benchmarks | |
on: | |
push: | |
branches: | |
- "main" | |
pull_request: | |
workflow_dispatch: # allows CodSpeed to trigger backtest | |
permissions: | |
contents: read | |
jobs: | |
benchmarks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" # use the latest version of Python because it is faster | |
- name: Install python dependencies. | |
run: pip install -r pytests/requirements.txt | |
- name: Install rust stable. | |
id: rust-toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: llvm-tools | |
- name: Cache rust. | |
uses: Swatinem/rust-cache@v2 | |
- name: Compile. | |
run: pip install -v -e . | |
env: | |
RUSTFLAGS: "-Cprofile-generate=${{ github.workspace }}/profdata" | |
- name: Gather PGO data. | |
run: pytest . --benchmark-enable | |
- name: Prepare merged PGO data. | |
run: rustup run stable bash -c '$RUSTUP_HOME/toolchains/$RUSTUP_TOOLCHAIN/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -o ${{ github.workspace }}/merged.profdata ${{ github.workspace }}/profdata' | |
- name: Compile with profile. | |
run: pip install -v -e . | |
env: | |
RUSTFLAGS: "-Cprofile-use=${{ github.workspace }}/merged.profdata" | |
- name: Run benchmarks. | |
uses: CodSpeedHQ/action@v2 | |
with: | |
token: ${{ secrets.CODSPEED_TOKEN }} | |
run: pytest . --codspeed -n auto |