Skip to content

Commit 9fdeab8

Browse files
authored
Merge pull request #5 from rex-rs/membench
- tools/memcached_benchmark: add integration test draft - tools/memcached_benchmark: use anyhow instead of Box<dyn Error> to handle errors - ci: add github action for memcached benchmark integration tests - ci: fix compatibility between rust and llvm toolchain - ci: force RUSTFLAGS on benchmark test - ci: install memcached for benchmark test - tools/memcached_benchmark: remove the prelude result::Result::Ok - tools/memcached_benchmark: use mold as link-arg again Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
2 parents 8ba7d7e + 4dfb7b8 commit 9fdeab8

File tree

6 files changed

+531
-18
lines changed

6 files changed

+531
-18
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: memcached_benchmark
2+
3+
on:
4+
push:
5+
branches: [main, ci]
6+
paths:
7+
- tools/memcached_benchmark/**
8+
pull_request:
9+
branches: [main]
10+
paths:
11+
- tools/memcached_benchmark/**
12+
13+
env:
14+
CARGO_TERM_COLOR: always
15+
16+
jobs:
17+
build:
18+
if: github.repository == 'rex-rs/rex'
19+
runs-on: ubuntu-latest
20+
defaults:
21+
run:
22+
working-directory: ./tools/memcached_benchmark
23+
24+
steps:
25+
- uses: actions/checkout@v4
26+
27+
# Install Ubuntu dependencies
28+
- name: Install Ubuntu dependencies
29+
run: |
30+
sudo apt-get install -y pkg-config libzstd-dev mold binutils memcached
31+
sudo systemctl stop memcached
32+
wget https://apt.llvm.org/llvm.sh
33+
chmod +x llvm.sh
34+
sudo ./llvm.sh 19 all
35+
sudo update-alternatives --verbose --install /usr/bin/clang clang /usr/bin/clang-19 10000 \
36+
--slave /usr/bin/lld lld /usr/bin/lld-19 \
37+
--slave /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-19
38+
39+
- uses: actions-rust-lang/setup-rust-toolchain@v1
40+
with:
41+
components: rustfmt
42+
toolchain: stable
43+
- name: Rustfmt Check
44+
uses: actions-rust-lang/rustfmt@v1
45+
with:
46+
manifest-path: ./tools/memcached_benchmark/Cargo.toml
47+
- name: Build
48+
run: RUSTFLAGS='-Ctarget-cpu=native -Clinker-plugin-lto -Clink-arg=-flto=thin -Clink-arg=-fuse-ld=mold -Clink-arg=-Wl,-O1 -Clink-arg=-Wl,--as-needed' cargo build -vvv
49+
- name: Run tests with debug build
50+
run: RUSTFLAGS='-Ctarget-cpu=native -Clinker-plugin-lto -Clink-arg=-flto=thin -Clink-arg=-fuse-ld=mold -Clink-arg=-Wl,-O1 -Clink-arg=-Wl,--as-needed' cargo test --verbose
51+
- name: Run tests with release build
52+
run: RUSTFLAGS='-Ctarget-cpu=native -Clinker-plugin-lto -Clink-arg=-flto=thin -Clink-arg=-fuse-ld=mold -Clink-arg=-Wl,-O1 -Clink-arg=-Wl,--as-needed' cargo test -r --verbose

.github/workflows/meson.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
name: Meson Build and Test
2-
32
on:
43
push:
5-
branches: [ main ]
4+
branches: [main, ci]
5+
paths-ignore:
6+
- docs/**
7+
- tools/**
68
pull_request:
7-
branches: [ main ]
9+
branches: [main]
10+
paths-ignore:
11+
- docs/**
12+
- tools/**
813

914
jobs:
1015
build_and_test:
1116
if: github.repository == 'rex-rs/rex'
1217
runs-on: self-hosted
1318
steps:
1419
- name: Checkout repository
15-
uses: actions/checkout@v3
20+
uses: actions/checkout@v4
1621
with:
1722
submodules: true
1823

@@ -35,4 +40,3 @@ jobs:
3540

3641
- name: Run Rex sanity tests
3742
run: meson test -C build
38-

0 commit comments

Comments
 (0)