feat: introduce prometheus metrics (#54) #36
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ================= THIS FILE IS AUTOMATICALLY GENERATED ================= | |
# | |
# Please run generate.sh and commit after editing the workflow templates. | |
# | |
# ======================================================================== | |
name: CI (main) | |
on: | |
push: | |
branches: [main] | |
workflow_dispatch: | |
env: | |
RUST_TOOLCHAIN: nightly-2023-05-31 | |
CARGO_TERM_COLOR: always | |
CACHE_KEY_SUFFIX: 20230703 | |
jobs: | |
misc-check: | |
name: misc check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install tools | |
run: | | |
wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${BINARY}.tar.gz -O - | tar xz && sudo mv ${BINARY} /usr/bin/yq | |
env: | |
YQ_VERSION: v4.16.1 | |
BINARY: yq_linux_amd64 | |
BUF_VERSION: 1.0.0-rc6 | |
- name: Check if CI workflows are up-to-date | |
run: | | |
./.github/template/generate.sh --check | |
- name: Run ShellCheck | |
uses: ludeeus/action-shellcheck@master | |
rust-test: | |
name: rust test with codecov | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install rust toolchain@v1 | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
components: rustfmt, clippy, llvm-tools-preview | |
- name: Cache Cargo home | |
uses: actions/cache@v2 | |
id: cache | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}-${{ env.CACHE_KEY_SUFFIX }} | |
- name: Install cargo-sort | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
cargo install cargo-sort | |
- name: Run rust cargo-sort check | |
run: | | |
cargo sort -w -c | |
- name: Run rust format check | |
run: | | |
cargo fmt --all -- --check | |
- name: Run rust clippy check | |
run: | | |
cargo clippy --all-targets --features tokio-console -- -D warnings && | |
cargo clippy --all-targets --features deadlock -- -D warnings && | |
cargo clippy --all-targets -- -D warnings | |
- if: steps.cache.outputs.cache-hit != 'true' | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- if: steps.cache.outputs.cache-hit != 'true' | |
uses: taiki-e/install-action@nextest | |
- name: Run rust test with coverage | |
run: | | |
cargo llvm-cov nextest --lcov --output-path lcov.info | |
- uses: codecov/codecov-action@v2 | |
deadlock: | |
name: run with single worker thread and deadlock detection | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install rust toolchain@v1 | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
- name: Cache Cargo home | |
uses: actions/cache@v2 | |
id: cache | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-asan-${{ hashFiles('**/Cargo.toml') }}-${{ env.CACHE_KEY_SUFFIX }} | |
- name: Run foyer-storage-bench with single worker thread and deadlock detection | |
env: | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: '--cfg tokio_unstable' | |
RUST_LOG: info | |
TOKIO_WORKER_THREADS: 1 | |
run: |- | |
cargo build --all --features deadlock && | |
mkdir -p $GITHUB_WORKSPACE/foyer-data/foyer-storage-bench/deadlock && | |
timeout 2m ./target/debug/foyer-storage-bench --dir $GITHUB_WORKSPACE/foyer-data/foyer-storage-bench/deadlock --capacity 256 --region-size 16 --buffer-pool-size 256 --lookup-range 1000 --time 60 | |
asan: | |
name: run with address saniziter | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install rust toolchain@v1 | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
- name: Cache Cargo home | |
uses: actions/cache@v2 | |
id: cache | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-asan-${{ hashFiles('**/Cargo.toml') }}-${{ env.CACHE_KEY_SUFFIX }} | |
- name: Run foyer-storage-bench With Address Sanitizer | |
env: | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: '-Zsanitizer=address --cfg tokio_unstable' | |
RUST_LOG: info | |
run: |- | |
cargo build --all --target x86_64-unknown-linux-gnu && | |
mkdir -p $GITHUB_WORKSPACE/foyer-data/foyer-storage-bench/asan && | |
timeout 2m ./target/x86_64-unknown-linux-gnu/debug/foyer-storage-bench --dir $GITHUB_WORKSPACE/foyer-data/foyer-storage-bench/asan --capacity 256 --region-size 16 --buffer-pool-size 256 --lookup-range 1000 --time 60 | |
# ================= THIS FILE IS AUTOMATICALLY GENERATED ================= | |
# | |
# Please run generate.sh and commit after editing the workflow templates. | |
# | |
# ======================================================================== | |