ci: Run functional tests in CI

Signed-off-by: Michael Vetter <jubalh@iodoru.org>
This commit is contained in:
Michael Vetter
2026-04-03 08:57:13 +02:00
parent 6a7262f2b0
commit 8af80a7ad5

80
.github/workflows/functional-tests.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
name: Build
on:
push:
branches: [master]
pull_request:
branches: [master]
concurrency:
group: ${{ github.workflow }}-func-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
functional-tests:
runs-on: ubuntu-latest
name: ubuntu | func | signal
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libcmocka-dev libcurl4-openssl-dev libgcrypt20-dev libglib2.0-dev \
libgpgme-dev libgtk-3-dev libmicrohttpd-dev libncursesw5-dev \
libnotify-dev libotr5-dev libreadline-dev libsignal-protocol-c-dev \
libomemo-c-dev libssl-dev libtool libxss-dev meson ninja-build \
pkg-config python3-dev python-dev-is-python3 libsqlite3-dev \
libgdk-pixbuf-2.0-dev libqrencode-dev libenchant-2-dev \
autoconf autoconf-archive automake cmake expect
- name: Install stabber
run: |
git clone --depth 1 https://github.com/profanity-im/stabber /tmp/stabber
cd /tmp/stabber
./bootstrap.sh
./configure --prefix=/usr
make -j$(nproc)
sudo make install
- name: Install libstrophe (master)
run: |
git clone --depth 1 https://github.com/strophe/libstrophe /tmp/libstrophe
cd /tmp/libstrophe
./bootstrap.sh
./configure --prefix=/usr
make -j$(nproc)
sudo make install
- name: Configure and Build
run: |
# Use --buildtype=debugoptimized (-O2) for fast execution.
# Explicitly disable sanitizers to avoid the performance penalty.
meson setup build_run \
--buildtype=debugoptimized \
-Db_sanitize=none \
-Dnotifications=enabled \
-Dpython-plugins=enabled \
-Dc-plugins=enabled \
-Dotr=enabled \
-Dpgp=enabled \
-Domemo=enabled \
-Domemo-qrcode=enabled \
-Dicons-and-clipboard=enabled \
-Dgdk-pixbuf=enabled \
-Dxscreensaver=enabled \
-Dspellcheck=enabled \
-Dtests=true
meson compile -C build_run profanity:executable functionaltests
- name: Verify Profanity Binary
run: |
./build_run/profanity --version
- name: Run Functional Tests
env:
TERM: xterm
LC_ALL: C.UTF-8
run: |
./build_run/functionaltests