Skip to content

fix: building codspeed with clang #848

fix: building codspeed with clang

fix: building codspeed with clang #848

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
with:
components: rustfmt, clippy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: pre-commit/[email protected]
with:
extra_args: --all-files
test-codspeed:
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
- { os: ubuntu-latest, target: arm-unknown-linux-gnueabihf }
- { os: ubuntu-latest, target: aarch64-unknown-linux-musl }
- { os: ubuntu-latest, target: i686-unknown-linux-gnu }
- { os: ubuntu-latest, target: i686-unknown-linux-musl }
- { os: ubuntu-latest, target: x86_64-unknown-linux-gnu }
- { os: ubuntu-latest, target: x86_64-unknown-linux-musl }
- { os: macos-latest, target: aarch64-apple-darwin }
- { os: macos-latest, target: x86_64-apple-darwin }
- { os: windows-latest, target: i686-pc-windows-msvc }
- { os: windows-latest, target: x86_64-pc-windows-msvc }
- { os: windows-latest, target: aarch64-pc-windows-msvc }
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
with:
targets: ${{ matrix.job.target }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: taiki-e/install-action@v2
with:
tool: [email protected]
- name: Build codspeed
run: cross build -p codspeed --target ${{ matrix.job.target }}
msrv-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
with:
bins: cargo-msrv
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check cospeed MSRV
run: cargo msrv --path crates/codspeed verify -- cargo check --all-features --config codspeed=true
- name: Check bencher_compat MSRV
run: cargo msrv --path crates/bencher_compat verify -- cargo check --all-features --config codspeed=true
- name: Check criterion_compat MSRV
run: cargo msrv --path crates/criterion_compat verify -- cargo check --all-features --config codspeed=true
- name: Check divan_compat MSRV
run: cargo msrv --path crates/divan_compat verify -- cargo check --all-features --config codspeed=true
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: cargo test --all
compat-integration-test-instrumentation:
runs-on: ubuntu-latest
strategy:
matrix:
build-args:
- "-p codspeed"
- "-p codspeed-bencher-compat"
- "--features async_futures -p codspeed-criterion-compat"
- "-p codspeed-divan-compat"
- "-p codspeed-divan-compat-examples"
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
with:
cache-target: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: cargo install --path crates/cargo-codspeed --locked
- run: cargo codspeed build ${{ matrix.build-args }}
- name: Run the benchmarks
uses: CodSpeedHQ/action@main
env:
MY_ENV_VAR: "YES"
with:
run: cargo codspeed run
mode: instrumentation
token: ${{ secrets.CODSPEED_TOKEN }}
compat-integration-test-walltime:
runs-on: codspeed-macro
strategy:
matrix:
package:
- codspeed-divan-compat
- codspeed-divan-compat-examples
- codspeed-criterion-compat
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
with:
cache-target: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: cargo install --path crates/cargo-codspeed --locked
- run: |
# Remove the cargo config else it forces instrumentation mode
rm -f .cargo/config.toml
cargo codspeed build -p ${{ matrix.package }}
- name: Run the benchmarks
uses: CodSpeedHQ/action@main
env:
MY_ENV_VAR: "YES"
with:
run: cargo codspeed run
mode: walltime
token: ${{ secrets.CODSPEED_TOKEN }}
musl-build-check:
strategy:
matrix:
include:
- target: x86_64-unknown-linux-musl
runner: ubuntu-24.04
- target: aarch64-unknown-linux-musl
runner: codspeedhq-arm64-ubuntu-24.04
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: moonrepo/setup-rust@v1
with:
targets: ${{ matrix.target }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install musl tools
run: sudo apt-get update && sudo apt-get install -y musl-tools
- run: cargo build --locked --release --bin cargo-codspeed --target ${{ matrix.target }}
check:
runs-on: ubuntu-latest
if: always()
needs:
- lint
- test-codspeed
- msrv-check
- tests
- compat-integration-test-instrumentation
- compat-integration-test-walltime
- musl-build-check
steps:
- uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJson( needs ) }}