Skip to content

perf: Entry API POC #802

perf: Entry API POC

perf: Entry API POC #802

Workflow file for this run

name: CI
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
rust: [ 1.76.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
env:
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 }} --no-self-update
rustup default ${{ matrix.rust }}
rustup target add wasm32-unknown-unknown
- name: Benchmark
run: |
bash ./scripts/ci_run_benchmark.sh $PROJECT_DIR ${{ github.job }}
- uses: actions/upload-artifact@v4
with:
name: canbench_result_${{github.job}}
path: /tmp/canbench_result_${{ github.job }}
- 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
- name: Pass or fail
run: |
bash ./scripts/ci_post_run_benchmark.sh
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