From 0a55f4eae2ff9457d6e66c05b5b79e1381563ba9 Mon Sep 17 00:00:00 2001 From: Arthur Pastel Date: Thu, 6 Feb 2025 15:26:42 +0100 Subject: [PATCH] feat: install codspeed --- .github/workflows/benchmark.yml | 39 +++++++ .github/workflows/ci.yml | 191 -------------------------------- .github/workflows/gh-pages.yml | 27 ----- Cargo.toml | 6 +- 4 files changed, 43 insertions(+), 220 deletions(-) create mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/gh-pages.yml diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..c416c84c --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,39 @@ +name: codspeed-benchmarks + +on: + # Run on pushes to the master branch + push: + branches: + - "master" + # Run on pull requests + pull_request: + # `workflow_dispatch` allows CodSpeed to trigger backtest + # performance analysis in order to generate initial data. + workflow_dispatch: + +jobs: + benchmarks: + strategy: + matrix: + runs-on: + - ubuntu-latest + - codspeed-macro + runs-on: ${{ matrix.runs-on }} + + steps: + - uses: actions/checkout@v4 + - name: Setup rust toolchain, cache and cargo-codspeed binary + uses: moonrepo/setup-rust@v1 + with: + cache-target: release + bins: cargo-codspeed@2.8.0-alpha.3 + + - name: Build the benchmark target(s) + run: cargo codspeed build + + - name: Run the benchmarks + uses: CodSpeedHQ/action@v3 + with: + runner-version: 3.3.0 + run: cargo codspeed run + token: ${{ secrets.CODSPEED_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 04693287..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,191 +0,0 @@ -name: CI - -on: - push: - pull_request: - workflow_dispatch: - schedule: - - cron: "0 10 * * *" - -permissions: - contents: read - -env: - RUSTFLAGS: -Dwarnings - -jobs: - format_control: - name: Format control / ${{ matrix.endianness }} ${{ matrix.alignment }} ${{ matrix.pointer_width }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - endianness: - - little_endian - - big_endian - alignment: - - aligned - - unaligned - pointer_width: - - pointer_width_16 - - pointer_width_32 - - pointer_width_64 - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo test --verbose --tests --no-default-features --features "${{ matrix.endianness }} ${{ matrix.alignment }} ${{ matrix.pointer_width }}" - - features: - name: Features / ${{ matrix.std }} ${{ matrix.validation }} ${{ matrix.external }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - std: - - '' - - alloc - - std - validation: - - '' - - bytecheck - external: - - '' - - hashbrown-0_14 hashbrown-0_15 indexmap-2 smallvec-1 smol_str-0_2 smol_str-0_3 arrayvec-0_7 tinyvec-1 uuid-1 bytes-1 thin-vec-0_2 triomphe-0_1 - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo test --verbose --tests --no-default-features --features "${{ matrix.std }} ${{ matrix.validation }} ${{ matrix.external }}" - - toolchain: - name: Toolchain / ${{ matrix.toolchain }} ${{ matrix.opt }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - toolchain: - - stable - - beta - - nightly - opt: - - '' - - --release - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ matrix.toolchain }} - - run: cargo test --verbose ${{ matrix.opt }} - - layout: - name: Randomize layout / layout-seed=${{ matrix.layout-seed }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - # Nothing-up-my-sleeve: these are the digits of pi in groups of 19 - layout-seed: - - '3141592653589793238' - - '4626433832795028841' - - '9716939937510582097' - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - run: cargo test --verbose - env: - RUSTFLAGS: -Zrandomize-layout -Z layout-seed=${{ matrix.layout-seed }} - - miri: - name: Miri / ${{ matrix.opt }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - opt: - - '' - - --release - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@miri - - run: cargo miri setup - - run: cargo miri test ${{ matrix.opt }} --verbose - env: - MIRIFLAGS: -Zmiri-tree-borrows - - test: - name: Test / ${{ matrix.target }} ${{ matrix.opt }} - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - opt: - - '' - - --release - include: - - os: ubuntu-latest - target: x86_64-unknown-linux-gnu - - os: macos-latest - target: aarch64-apple-darwin - - os: windows-latest - target: x86_64-pc-windows-msvc - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo test ${{ matrix.opt }} - - cross: - name: Cross / ${{ matrix.target }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - target: - - i686-unknown-linux-gnu - - i586-unknown-linux-gnu - - armv7-unknown-linux-gnueabihf - - aarch64-unknown-linux-gnu - - thumbv6m-none-eabi - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo install cross - - run: cross build --no-default-features --features "alloc bytecheck" --target ${{ matrix.target }} --verbose - - format: - name: Format - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - components: rustfmt - - run: cargo fmt --check - - clippy: - name: Clippy - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - components: clippy - - run: cargo clippy - - doc: - name: Doc - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - run: cargo doc diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index db5bf8dc..00000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: GitHub Pages - -on: - push: - branches: - - main - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup mdBook - uses: peaceiris/actions-mdbook@v2 - with: - mdbook-version: 'latest' - - - name: Build - run: mdbook build - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./book diff --git a/Cargo.toml b/Cargo.toml index ac38a235..1a326d2d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,8 +20,10 @@ readme = "README.md" repository = "https://github.com/rkyv/rkyv" [workspace.dependencies] -bytecheck = { version = "0.8", default-features = false, features = ["simdutf8"] } -divan = { version = "0.1", default-features = false } +bytecheck = { version = "0.8", default-features = false, features = [ + "simdutf8", +] } +divan = { package = "codspeed-divan-compat", version = "2.8.0-alpha.3", default-features = false } hashbrown = { version = "0.15", default-features = false } munge = { version = "0.4", default-features = false } proc-macro2 = { version = "1", default-features = false }