11name : CI
22
3+ # CI testing includes:
4+ # - Debian versions: 11 (bullseye), 12 (bookworm), 13 (trixie), sid (unstable)
5+ # - Various smoke test images (configurable via repository variables)
6+ # - TLS and no-TLS builds
7+ # - Code coverage and static analysis
8+
39on : [push, pull_request]
410
511jobs :
@@ -30,36 +36,96 @@ jobs:
3036 run : |
3137 apt-get -qq update -y
3238 apt-get install -y \
33- build-essential autoconf automake libpcre3-dev libevent-dev \
39+ build-essential autoconf automake libevent-dev \
3440 pkg-config zlib1g-dev libssl-dev libboost-all-dev cmake flex
3541
3642 - name : Build
3743 run : autoreconf -ivf && ./configure && make -j
3844
45+ - name : Verify version, libevent, openssl
46+ run : |
47+ ./memtier_benchmark --version
48+ ldd ./memtier_benchmark | grep libevent
49+ ldd ./memtier_benchmark | grep ssl
50+
51+ test-debian-versions :
52+ runs-on : ubuntu-latest
53+ continue-on-error : true
54+ env :
55+ DEBIAN_FRONTEND : noninteractive
56+ strategy :
57+ matrix :
58+ debian_version :
59+ - " debian:bullseye" # Debian 11 (oldstable)
60+ - " debian:bookworm" # Debian 12 (stable)
61+ - " debian:trixie" # Debian 13 (testing)
62+ - " debian:sid" # Debian unstable
63+ container : ${{ matrix.debian_version }}
64+ name : Test ${{ matrix.debian_version }}
65+ steps :
66+ - name : Install git and basic tools
67+ run : |
68+ apt-get update -qq
69+ apt-get install -y git ca-certificates
70+
71+ - name : Checkout code
72+ uses : actions/checkout@v4
73+
74+ - name : Install build dependencies
75+ run : |
76+ apt-get update -qq
77+ apt-get install -y \
78+ build-essential \
79+ autoconf \
80+ automake \
81+ pkg-config \
82+ libevent-dev \
83+ zlib1g-dev \
84+ libssl-dev
85+
86+ - name : Build
87+ run : autoreconf -ivf && ./configure && make -j
88+
89+ - name : Verify version, libevent, openssl
90+ run : |
91+ ./memtier_benchmark --version
92+ ldd ./memtier_benchmark | grep libevent
93+ ldd ./memtier_benchmark | grep ssl
94+
3995 build-notls :
4096 runs-on : ubuntu-latest
4197 steps :
4298 - uses : actions/checkout@v4
4399 - name : Install dependencies
44100 run : |
45101 sudo apt-get -qq update
46- sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev
102+ sudo apt-get install lcov autoconf automake pkg-config libevent-dev
47103
48- - name : Build
104+ - name : Build without TLS
49105 run : autoreconf -ivf && ./configure --disable-tls && make -j
50106
107+ - name : Verify version, libevent
108+ run : |
109+ ./memtier_benchmark --version
110+ ldd ./memtier_benchmark | grep libevent
111+
51112 build-ubuntu-latest :
52113 runs-on : ubuntu-latest
53114 steps :
54115 - uses : actions/checkout@v4
55116 - name : Install dependencies
56117 run : |
57118 sudo apt-get -qq update
58- sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev
119+ sudo apt-get install lcov autoconf automake pkg-config libevent-dev
59120
60- - name : Build
121+ - name : Build without TLS
61122 run : autoreconf -ivf && ./configure --disable-tls && make -j
62123
124+ - name : Verify version, libevent, openssl
125+ run : |
126+ ./memtier_benchmark --version
127+ ldd ./memtier_benchmark | grep libevent
128+
63129 build-ubuntu :
64130 strategy :
65131 matrix :
70136 - name : Install dependencies
71137 run : |
72138 sudo apt-get -qq update
73- sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev libssl-dev
139+ sudo apt-get install lcov autoconf automake pkg-config libevent-dev libssl-dev
74140
75141 - name : Build
76142 # for coverage reports we need to use Ubuntu 22.04 or lower
@@ -159,29 +225,31 @@ jobs:
159225 run : brew install autoconf automake libtool libevent openssl@${{ matrix.openssl }}
160226 - name : Build
161227 run : autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix openssl@${{ matrix.openssl }}`/lib/pkgconfig ./configure && make
228+ - name : Verify version, libevent, openssl
229+ run : |
230+ ./memtier_benchmark --version
231+ otool -L ./memtier_benchmark | grep libevent
232+ otool -L ./memtier_benchmark | grep ssl
162233
163- # According to https://github.com/actions/runner-images/blob/macos-14-arm64/20241119.509/images/macos/macos-14-arm64-Readme.md
164- # [macOS] OpenSSL 1.1 will be removed and OpenSSL 3 will be the default for all macOS images from November 4, 2024
165- # so use macos-13 which does not have the deprecation notice
166- # macos-13 details: https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md
234+ # macos-13 has been retired as of December 2025, so use macos-14
235+ # macos-14 details: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
167236 build-macos-openssl-1-1 :
168- strategy :
169- matrix :
170- platform : [macos-13]
171- runs-on : ${{ matrix.platform }}
237+ runs-on : macos-14
172238 steps :
173239 - uses : actions/checkout@v4
174240 - name : Install dependencies
175241 run : brew install autoconf automake libtool libevent openssl@1.1
176242 - name : Build
177243 run : autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix openssl@1.1`/lib/pkgconfig ./configure && make
244+ - name : Verify version, libevent, openssl
245+ run : |
246+ ./memtier_benchmark --version
247+ otool -L ./memtier_benchmark | grep libevent
248+ otool -L ./memtier_benchmark | grep ssl
178249
179250
180251 build-macos-openssl-1-0-2 :
181- strategy :
182- matrix :
183- platform : [macos-13]
184- runs-on : ${{ matrix.platform }}
252+ runs-on : macos-14
185253 steps :
186254 - uses : actions/checkout@v4
187255 - name : Install dependencies
@@ -190,3 +258,8 @@ jobs:
190258 run : brew install rbenv/tap/openssl@1.0
191259 - name : Build
192260 run : autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix openssl@1.0`/lib/pkgconfig ./configure && make
261+ - name : Verify version, libevent, openssl
262+ run : |
263+ ./memtier_benchmark --version
264+ otool -L ./memtier_benchmark | grep libevent
265+ otool -L ./memtier_benchmark | grep ssl
0 commit comments