Skip to content

fix: publishing crates with correct versions #249

fix: publishing crates with correct versions

fix: publishing crates with correct versions #249

Workflow file for this run

name: CI
on: [pull_request]
env:
RUST_VERSION: 1.75.0
jobs:
build:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Cache Cargo
uses: actions/cache@v2
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 $RUST_VERSION --no-self-update
rustup default $RUST_VERSION
rustup component add rustfmt
rustup component add clippy
- name: Check Format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --tests --benches -- -D clippy::all
- name: Test
run: cargo test --all-features -- --test-threads=1
env:
RUST_BACKTRACE: 1
benchmark-fibonacci-example:
runs-on: ubuntu-latest
needs: [build]
env:
PROJECT_DIR: examples/fibonacci
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@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-1
- name: Install Rust
run: |
rustup update $RUST_VERSION --no-self-update
rustup default $RUST_VERSION
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: Pass or fail
run: |
bash ./scripts/ci_post_run_benchmark.sh
benchmark-btreemap-vs-hashmap-example:
runs-on: ubuntu-latest
needs: [build]
env:
PROJECT_DIR: examples/btreemap_vs_hashmap
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@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-1
- name: Install Rust
run: |
rustup update $RUST_VERSION --no-self-update
rustup default $RUST_VERSION
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: Pass or fail
run: |
bash ./scripts/ci_post_run_benchmark.sh
shell-checks:
name: ShellCheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
env:
SHELLCHECK_OPTS: -e SC1090 -e SC2119 -e SC1091
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,
shell-checks,
benchmark-fibonacci-example,
benchmark-btreemap-vs-hashmap-example
]
runs-on: ubuntu-latest
steps:
- name: check build result
if: ${{ needs.build.result != 'success' }}
run: exit 1
- name: check shell-checks result
if: ${{ needs.shell-checks.result != 'success' }}
run: exit 1
- name: check benchmark-fibonacci-example result
if: ${{ needs.benchmark-fibonacci-example.result != 'success' }}
run: exit 1
- name: check benchmark-btreemap-vs-hashmap-example result
if: ${{ needs.benchmark-btreemap-vs-hashmap-example.result != 'success' }}
run: exit 1