name: CodSpeed on: push: branches: - "main" paths: - "crates/**" - "benchmarks/**" - "Cargo.toml" - "Cargo.lock" pull_request: paths: - "crates/**" - "benchmarks/**" - "Cargo.toml" - "Cargo.lock" workflow_dispatch: env: CODSPEED: true jobs: benchmarks: name: Run benchmarks runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup rust toolchain, cache and cargo-codspeed binary uses: moonrepo/setup-rust@v1 with: channel: stable cache-target: release bins: cargo-codspeed - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: latest cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Build JS dependencies run: cargo xtask build-js - name: Build the benchmark target(s) run: cargo codspeed build - name: Run the benchmarks uses: CodSpeedHQ/action@v3 with: run: cargo codspeed run token: ${{ secrets.CODSPEED_TOKEN }}