Skip to content

chore: bump canbench version to v0.1.17 #1511

chore: bump canbench version to v0.1.17

chore: bump canbench version to v0.1.17 #1511

Workflow file for this run

name: CI
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
rust: [1.84.0]
steps:
- uses: actions/checkout@v4
- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ matrix.build }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ matrix.build }}-cargo-
- name: Install Rust
run: |
rustup update ${{ matrix.rust }} --no-self-update
rustup default ${{ matrix.rust }}
rustup component add rustfmt
rustup component add clippy
rustup toolchain install nightly
- name: Check Format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --tests --benches -- -D clippy::all
- name: Test
run: cargo test
env:
RUST_BACKTRACE: 1
- name: Build Fuzzers
run: |
cargo install cargo-fuzz
cargo +nightly fuzz build
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-1
- name: Install Rust
run: |
rustup update ${{ matrix.rust }} --no-self-update
rustup default ${{ matrix.rust }}
rustup target add wasm32-unknown-unknown
- name: Install DFX
run: |
wget --output-document install-dfx.sh "https://internetcomputer.org/install.sh"
DFX_VERSION=${DFX_VERSION:=0.14.3} DFXVM_INIT_YES=true bash install-dfx.sh < <(yes Y)
echo "$HOME/.local/share/dfx/bin" >> $GITHUB_PATH
source "$HOME/.local/share/dfx/env"
rm install-dfx.sh
dfx cache install
echo "$HOME/bin" >> $GITHUB_PATH
- name: Run test
run: |
bash examples/test.sh
benchmark:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
name:
- btreemap
- btreeset
- memory-manager
- vec
- compare
include:
- name: btreemap
project_dir: ./benchmarks/btreemap
- name: btreeset
project_dir: ./benchmarks/btreeset
- name: memory-manager
project_dir: ./benchmarks/memory_manager
- name: vec
project_dir: ./benchmarks/vec
- name: compare
project_dir: ./benchmarks/compare
env:
PROJECT_DIR: ${{ matrix.project_dir }}
steps:
- name: Checkout current PR
uses: actions/checkout@v4
- name: Checkout main branch
uses: actions/checkout@v4
with:
ref: main
path: _canbench_main_branch
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-1
- name: Install Rust
run: |
rustup update ${{ matrix.rust || 'stable' }} --no-self-update
rustup default ${{ matrix.rust || 'stable' }}
rustup target add wasm32-unknown-unknown
- name: Benchmark
run: |
bash ./scripts/ci_run_benchmark.sh $PROJECT_DIR ${{ matrix.name }}
- uses: actions/upload-artifact@v4
with:
name: canbench_result_${{ matrix.name }}
path: /tmp/canbench_result_${{ matrix.name }}
- uses: actions/upload-artifact@v4
with:
name: canbench_results_${{ matrix.name }}_csv
path: /tmp/canbench_results_${{ matrix.name }}.csv
- name: Pass or fail
run: |
bash ./scripts/ci_post_run_benchmark.sh
upload-pr-number:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Save PR number
run: |
echo ${{ github.event.number }} > /tmp/pr_number
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: /tmp/pr_number
checks-pass:
# Always run this job!
if: always()
needs:
- build
- examples
- benchmark
runs-on: ubuntu-latest
steps:
- name: check build result
if: ${{ needs.build.result != 'success' }}
run: exit 1
- name: check examples result
if: ${{ needs.examples.result != 'success' }}
run: exit 1
- name: check benchmark result
if: ${{ needs.benchmark.result != 'success' }}
run: exit 1