From 423a5384dab7027a24bdcdf64e6bab40804274dd Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Mon, 17 Nov 2025 11:52:06 +0100 Subject: [PATCH 1/4] to drop run ci --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 81187a2c..08e18e05 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,5 @@ This mono-repo contains the integration crates for using CodSpeed in Rust: - [`codspeed-bencher-compat`](./crates/bencher_compat/): Bencher compatibility layer for CodSpeed - [`codspeed-divan-compat`](./crates/divan_compat/): Divan compatibility layer for CodSpeed - [`codspeed`](./crates/codspeed/): The core library used to integrate with Codspeed runners + +Test From 16fc15471f9c10a67ea3a6e3a44e64f8b448942a Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Mon, 17 Nov 2025 14:14:27 +0100 Subject: [PATCH 2/4] test without cross --- .github/workflows/ci.yml | 426 ++++++++++++++++++++------------------- 1 file changed, 223 insertions(+), 203 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6df75834..7335fbb5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,51 +6,36 @@ on: workflow_dispatch: jobs: - lint: + # 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/action@v3.0.1 + # with: + # extra_args: --all-files + # + # - uses: taiki-e/install-action@v2 + # with: + # tool: bindgen-cli@0.72.1 + # - name: Check if bindings are up-to-date + # working-directory: crates/codspeed/src/instrument_hooks + # run: | + # ./update-bindings.sh + # + # if ! git diff --exit-code bindings.rs; then + # echo "Error: FFI bindings are out of date!" + # exit 1 + # fi + + test-without-cross: 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/action@v3.0.1 - with: - extra_args: --all-files - - - uses: taiki-e/install-action@v2 - with: - tool: bindgen-cli@0.72.1 - - name: Check if bindings are up-to-date - working-directory: crates/codspeed/src/instrument_hooks - run: | - ./update-bindings.sh - - if ! git diff --exit-code bindings.rs; then - echo "Error: FFI bindings are out of date!" - exit 1 - fi - - 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: @@ -67,162 +52,197 @@ jobs: tool: cross@0.2.5 - 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-without-cargo-codspeed: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - uses: moonrepo/setup-rust@v1 - with: - bins: cargo-nextest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: cargo nextest run --workspace --exclude cargo-codspeed - - test-cargo-codspeed: - runs-on: ubuntu-latest - strategy: - matrix: - partition: [1, 2, 3, 4, 5] - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - uses: moonrepo/setup-rust@v1 - with: - bins: cargo-nextest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: cargo nextest run -p cargo-codspeed --partition hash:${{ matrix.partition }}/5 - - 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 - - tests-without-cargo-codspeed - - test-cargo-codspeed - - msrv-check - - compat-integration-test-instrumentation - - compat-integration-test-walltime - - musl-build-check - steps: - - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJson( needs ) }} + run: cross build -p codspeed --target x86_64-unknown-linux-gnu + + # 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: cross@0.2.5 + # + # - 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-without-cargo-codspeed: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # with: + # submodules: true + # - uses: moonrepo/setup-rust@v1 + # with: + # bins: cargo-nextest + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - run: cargo nextest run --workspace --exclude cargo-codspeed + # + # test-cargo-codspeed: + # runs-on: ubuntu-latest + # strategy: + # matrix: + # partition: [1, 2, 3, 4, 5] + # steps: + # - uses: actions/checkout@v4 + # with: + # submodules: true + # - uses: moonrepo/setup-rust@v1 + # with: + # bins: cargo-nextest + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - run: cargo nextest run -p cargo-codspeed --partition hash:${{ matrix.partition }}/5 + # + # 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 + # - tests-without-cargo-codspeed + # - test-cargo-codspeed + # - msrv-check + # - compat-integration-test-instrumentation + # - compat-integration-test-walltime + # - musl-build-check + # steps: + # - uses: re-actors/alls-green@release/v1 + # with: + # jobs: ${{ toJson( needs ) }} From 5fc1cbf8835ba4991829f722f8d40cea1bca7fed Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Mon, 17 Nov 2025 14:17:39 +0100 Subject: [PATCH 3/4] all targets ? --- .github/workflows/ci.yml | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7335fbb5..d6cc9360 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,40 +54,40 @@ jobs: - name: Build codspeed run: cross build -p codspeed --target x86_64-unknown-linux-gnu - # 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: cross@0.2.5 - # - # - name: Build codspeed - # run: cross build -p codspeed --target ${{ matrix.job.target }} + 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: cross@0.2.5 + + - name: Build codspeed + run: cross build -p codspeed --target ${{ matrix.job.target }} # # msrv-check: # runs-on: ubuntu-latest From a457229d9cafb097903994a7baec957f2744007e Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Mon, 17 Nov 2025 14:21:26 +0100 Subject: [PATCH 4/4] test --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6cc9360..af625cff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -87,7 +87,7 @@ jobs: tool: cross@0.2.5 - name: Build codspeed - run: cross build -p codspeed --target ${{ matrix.job.target }} + run: cross clean && cross build -p codspeed --target ${{ matrix.job.target }} # # msrv-check: # runs-on: ubuntu-latest