Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,21 @@ jobs:
docker build -f Dockerfile.${{ matrix.flavor }} -t profanity .
docker run profanity ./ci-build.sh
linux-meson:
runs-on: ubuntu-latest

strategy:
matrix:
flavor: [debian]

name: Linux-meson
steps:
- uses: actions/checkout@v2
- name: Run tests
run: |
docker build -f Dockerfile.${{ matrix.flavor }} -t profanity .
docker run profanity ./ci-meson-build.sh
code-style:
runs-on: ubuntu-22.04
name: Check coding style
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ src/config.h
src/config.h.in
src/config.h.in~
src/gitversion.h
src/gitversion.h.in
src/stamp-h1
src/plugins/profapi.lo

Expand Down
5 changes: 4 additions & 1 deletion Dockerfile.debian
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
autoconf \
autoconf-archive \
automake \
cmake \
expect \
gcc \
git \
Expand All @@ -13,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libgcrypt-dev \
libglib2.0-dev \
libgpgme11-dev \
libgtk2.0-dev \
libgtk-3-dev \
libmicrohttpd-dev \
libncursesw5-dev \
libnotify-dev \
Expand All @@ -24,6 +25,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libtool \
libxss-dev \
make \
meson \
ninja-build \
pkg-config \
python3-dev \
python-dev-is-python3 \
Expand Down
65 changes: 65 additions & 0 deletions ci-meson-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env bash

# Exit on error
set -e

error_handler()
{
ERR_CODE=$?
echo
echo "Error ${ERR_CODE} with command '${BASH_COMMAND}' on line ${BASH_LINENO[0]}. Exiting."
# Meson logs are stored in the build directory
if [ -f "build/meson-logs/testlog.txt" ]; then
echo "--- Meson Test Log ---"
cat build/meson-logs/testlog.txt
fi
exit ${ERR_CODE}
}

trap error_handler ERR

tests=(
"-Dnotifications=enabled -Dicons-and-clipboard=enabled -Dotr=enabled -Dpgp=enabled -Domemo=enabled -Dc-plugins=enabled -Dpython-plugins=enabled -Dxscreensaver=enabled -Domemo-qrcode=enabled -Dgdk-pixbuf=enabled"
""
"-Dnotifications=disabled"
"-Dicons-and-clipboard=disabled"
"-Dotr=disabled"
"-Dpgp=disabled"
"-Domemo=disabled -Domemo-qrcode=disabled"
"-Dpgp=disabled -Dotr=disabled"
"-Dpgp=disabled -Dotr=disabled -Domemo=disabled"
"-Dpython-plugins=disabled"
"-Dc-plugins=disabled"
"-Dc-plugins=disabled -Dpython-plugins=disabled"
"-Dxscreensaver=disabled"
"-Dgdk-pixbuf=disabled"
)

# Run Valgrind check (Only on Linux, on first/full feature set)
if [[ "$(uname | tr '[:upper:]' '[:lower:]')" == linux* ]]; then
echo "--> Running Valgrind check with full features"

meson setup build_valgrind ${tests[0]} -Dtests=true
meson compile -C build_valgrind

meson test -C build_valgrind --print-errorlogs --wrap=valgrind || echo "Valgrind issues detected"

rm -rf build_valgrind
fi

# Iterate through all feature combinations
for features in "${tests[@]}"
do
echo "----------------------------------------------------"
echo "--> Building with: ${features}"
echo "----------------------------------------------------"

rm -rf build_run

meson setup build_run ${features} -Dtests=true
meson compile -C build_run

meson test -C build_run --print-errorlogs

./build_run/profanity -v
done
Loading
Loading