about summary refs log tree commit diff stats
path: root/ci-build.sh
diff options
context:
space:
mode:
authorWilliam Wennerström <william@wstrm.dev>2020-02-14 12:50:52 +0100
committerWilliam Wennerström <william@wstrm.dev>2020-02-17 10:54:15 +0100
commitb267b065f5b4c6fef93cb6f26c59f2e5c7dc7342 (patch)
tree43e80dbd080fbaa38a50fe5501f4433ecb04925e /ci-build.sh
parentca3afa7e05ae87158b6c1bfca1758763d4b0d8a2 (diff)
downloadprofani-tty-b267b065f5b4c6fef93cb6f26c59f2e5c7dc7342.tar.gz
Add builds.sr.ht CI for OpenBSD
* Add .builds/openbsd.yml for builds.sr.ht
* Update travis-build.sh -> ci-build.sh with OpenBSD case
* Fix libdl check in configure.ac (OpenBSD has libdl built-in)
* Fix some minor issues found when compiling on OpenBSD with GCC (e.g.
  uninitialized variables)
Diffstat (limited to 'ci-build.sh')
-rwxr-xr-xci-build.sh112
1 files changed, 112 insertions, 0 deletions
diff --git a/ci-build.sh b/ci-build.sh
new file mode 100755
index 00000000..2dbe8311
--- /dev/null
+++ b/ci-build.sh
@@ -0,0 +1,112 @@
+#!/usr/bin/env bash
+
+error_handler()
+{
+    ERR_CODE=$?
+    echo
+    echo "Error ${ERR_CODE} with command '${BASH_COMMAND}' on line ${BASH_LINENO[0]}. Exiting."
+    echo
+    exit ${ERR_CODE}
+}
+
+trap error_handler ERR
+
+./bootstrap.sh
+
+tests=()
+MAKE="make"
+CC="gcc"
+
+case $(uname | tr '[:upper:]' '[:lower:]') in
+    linux*)
+        tests=(
+        "--enable-notifications --enable-icons-and-clipboard --enable-otr --enable-pgp
+        --enable-omemo --enable-plugins --enable-c-plugins
+        --enable-python-plugins --with-xscreensaver"
+        "--disable-notifications --disable-icons --disable-otr --disable-pgp
+        --disable-omemo --disable-plugins --disable-c-plugins
+        --disable-python-plugins --without-xscreensaver"
+        "--disable-notifications"
+        "--disable-icons"
+        "--disable-otr"
+        "--disable-pgp"
+        "--disable-omemo"
+        "--disable-pgp --disable-otr"
+        "--disable-pgp --disable-otr --disable-omemo"
+        "--disable-plugins"
+        "--disable-python-plugins"
+        "--disable-c-plugins"
+        "--disable-c-plugins --disable-python-plugins"
+        "--without-xscreensaver"
+        "")
+        ;;
+    darwin*)
+        tests=(
+        "--enable-notifications --enable-icons-and-clipboard --enable-otr --enable-pgp
+        --enable-omemo --enable-plugins --enable-c-plugins
+        --enable-python-plugins"
+        "--disable-notifications --disable-icons --disable-otr --disable-pgp
+        --disable-omemo --disable-plugins --disable-c-plugins
+        --disable-python-plugins"
+        "--disable-notifications"
+        "--disable-icons"
+        "--disable-otr"
+        "--disable-pgp"
+        "--disable-omemo"
+        "--disable-pgp --disable-otr"
+        "--disable-pgp --disable-otr --disable-omemo"
+        "--disable-plugins"
+        "--disable-python-plugins"
+        "--disable-c-plugins"
+        "--disable-c-plugins --disable-python-plugins"
+        "")
+        ;;
+    openbsd*)
+        MAKE="gmake"
+        # TODO(#1231):
+        # `-std=gnu99 -fexec-charset=UTF-8` to silence:
+        # src/event/server_events.c:1453:19: error: universal character names are only valid in C++ and C99
+        # src/event/server_events.c:1454:19: error: universal character names are only valid in C++ and C99
+        CC="gcc -std=gnu99 -fexec-charset=UTF-8"
+
+        tests=(
+        "--enable-notifications --enable-icons-and-clipboard --enable-otr --enable-pgp
+        --enable-omemo --enable-plugins --enable-c-plugins
+        --enable-python-plugins"
+        "--disable-notifications --disable-icons --disable-otr --disable-pgp
+        --disable-omemo --disable-plugins --disable-c-plugins
+        --disable-python-plugins"
+        "--disable-notifications"
+        "--disable-icons"
+        "--disable-otr"
+        "--disable-pgp"
+        "--disable-omemo"
+        "--disable-pgp --disable-otr"
+        "--disable-pgp --disable-otr --disable-omemo"
+        "--disable-plugins"
+        "--disable-python-plugins"
+        "--disable-c-plugins"
+        "--disable-c-plugins --disable-python-plugins"
+        "")
+        ;;
+esac
+
+for features in "${tests[@]}"
+do
+    echo
+    echo "--> Building with ./configure ${features}"
+    echo
+
+    # shellcheck disable=SC2086
+    ./configure $features
+
+    $MAKE CC="${CC}"
+    $MAKE check
+
+    if [ $? -eq 1 ]; then
+        cat ./test-suite.log
+    fi
+
+    ./profanity -v
+    $MAKE clean
+done