util-linux/.github/workflows/cibuild.sh

61 lines
1.1 KiB
Bash
Raw Normal View History

#!/bin/bash
PHASES=(${@:-CONFIGURE MAKE INSTALL CHECK DISTCHECK})
COMPILER="${COMPILER:?}"
2021-01-29 12:00:56 -06:00
COMPILER_VERSION="${COMPILER_VERSION}"
if [[ "$COMPILER" == clang ]]; then
2021-01-29 12:00:56 -06:00
CC="clang${COMPILER_VERSION:+-$COMPILER_VERSION}"
CXX="clang++${COMPILER_VERSION:+-$COMPILER_VERSION}"
elif [[ "$COMPILER" == gcc ]]; then
2021-01-29 12:00:56 -06:00
CC="gcc${COMPILER_VERSION:+-$COMPILER_VERSION}"
CXX="g++${COMPILER_VERSION:+-$COMPILER_VERSION}"
fi
set -ex
export CC="$CC"
export CXX="$CXX"
for phase in "${PHASES[@]}"; do
case $phase in
CONFIGURE)
opts="--disable-use-tty-group \
--disable-makeinstall-chown \
--enable-all-programs \
--enable-asan \
--enable-ubsan \
--without-python \
--enable-werror"
2021-01-29 12:00:56 -06:00
if [[ "$COMPILER" == clang* ]]; then
opts="$opts --enable-fuzzing-engine"
fi
sudo -E git clean -xdf
./autogen.sh
CC=$CC CXX=$CXX ./configure $opts
;;
MAKE)
make -j
make -j check-programs
;;
INSTALL)
make install DESTDIR=/tmp/dest
;;
CHECK)
./tests/run.sh --show-diff
;;
DISTCHECK)
make distcheck
;;
*)
echo >&2 "Unknown phase '$phase'"
exit 1
esac
done