Skip to content

Instantly share code, notes, and snippets.

@CrCs2O4
Created August 11, 2016 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CrCs2O4/ddc6d3e7f8d21ec1180466ba947ed35d to your computer and use it in GitHub Desktop.
Save CrCs2O4/ddc6d3e7f8d21ec1180466ba947ed35d to your computer and use it in GitHub Desktop.
4GitLabCI
#!/bin/bash
pwd
mkdir logs
export dir=$(pwd)
export ERRFILE=${dir}/logs/${LOGFILE}
cat /etc/os-release
rm ${ERRFILE}
function do_init {
$CC --version
check_error $?
$CXX --version
check_error $?
}
function update_repos {
if [ "$RUNFROMSHELL" != "" ];
then
echo "Running from shell. Skipping update repos"
return
fi
export DATA=$(cat /etc/resolv.conf|grep "nameserver 1.10.100.101")
echo "${DATA}"
if [ "$DATA" != "" ];
then
echo "Detected local runner"
sed -i 's!http://httpredir.debian.org/debian!http://1.10.100.103/debian!' /etc/apt/sources.list
fi
}
function aptget_update {
if [ "$RUNFROMSHELL" != "" ];
then
echo "Running from shell. Skipping apt-get update"
return
fi
echo "apt-get update"
apt-get update
if [ "$?" != 0 ]; then
sleep 1s
apt-get update
if [ "$?" != 0 ]; then
sleep 2s
apt-get update
if [ "$?" != 0 ]; then
sleep 5s
apt-get update
if [ "$?" != 0 ]; then
sleep 10s
apt-get update
if [ "$?" != 0 ]; then
sleep 15s
apt-get update
fi
fi
fi
fi
fi
}
function aptget_install {
if [ "$RUNFROMSHELL" != "" ];
then
echo "Running from shell. Skipping apt-get install"
return
fi
echo "apt-get -y -qq install $*"
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 1s
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 2s
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 5s
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 10s
aptget_update
apt-get -y -qq install $*
if [ "$?" != 0 ]; then
sleep 15s
apt-get -y -qq install $*
fi
fi
fi
fi
fi
}
function gitclone1 {
echo git clone $2
git clone $2
if [ "$?" != 0 ]; then
echo git clone $1
git clone $1
return $?
fi
return $?
}
function gitclone {
export name1=$1/$2
export name2=${CI_BUILD_REPO##*@}
export name2=https://${name2%/*}/$2
gitclone1 "$name1" "$name2"
if [ "$?" != 0 ]; then
sleep 1s
gitclone1 "$name1" "$name2"
if [ "$?" != 0 ]; then
sleep 3s
gitclone1 "$name1" "$name2"
if [ "$?" != 0 ]; then
sleep 5s
gitclone1 "$name1" "$name2"
if [ "$?" != 0 ]; then
sleep 10s
gitclone1 "$name1" "$name2"
if [ "$?" != 0 ]; then
sleep 15s
gitclone1 "$name1" "$name2"
if [ "$?" != 0 ]; then
sleep 20s
gitclone1 "$name1" "$name2"
fi
fi
fi
fi
fi
fi
check_error $?
}
function check_error {
if [ "$1" != 0 ]; then
cat $ERRFILE
exit $1
fi
}
function run_configure_simple {
rm $ERRFILE
echo "autoreconf -i"
autoreconf -i 2>$ERRFILE
check_error $?
rm $ERRFILE
echo "./configure $*"
./configure $* 2>$ERRFILE
check_error $?
}
function run_configure {
run_configure_simple $*
rm $ERRFILE
cd po
echo "make update-gmo"
make update-gmo 2>$ERRFILE
check_error $?
cd ..
rm $ERRFILE
cd po
echo "make update-po"
make update-po 2>$ERRFILE
check_error $?
cd ..
}
function run_cmake {
rm $ERRFILE
echo "cmake ."
cmake . 2>$ERRFILE
check_error $?
}
function run_make {
rm $ERRFILE
echo "make -j2 V=0 $*"
make -j2 V=0 $* 2>$ERRFILE
check_error $?
}
function run_make_check {
rm $ERRFILE
echo "make -j2 V=0 check $*"
make -j2 V=0 check $* 2>$ERRFILE
export ERR=$?
if [ "${ERR}" != 0 ]; then
cat $ERRFILE
cat src/manaplustests.log
exit ${ERR}
fi
valgrind -q --read-var-info=yes --track-origins=yes --malloc-fill=11 --free-fill=55 --show-reachable=yes --leak-check=full --leak-resolution=high --partial-loads-ok=yes --error-limit=no ./src/manaplustests 2>valg.log
export DATA=$(grep "invalid" valg.log)
if [ "$DATA" != "" ];
then
cat valg.log
echo "valgrind error"
exit 1
fi
cat valg.log
echo "valgrind check"
}
function run_check_warnings {
DATA=$(cat $ERRFILE)
if [ "$DATA" != "" ];
then
cat $ERRFILE
exit 1
fi
}
function run_h {
rm $ERRFILE
echo "$CC -c -x c++ $* $includes */*/*/*/*.h */*/*/*.h */*/*.h */*.h *.h"
$CC -c -x c++ $* $includes */*/*/*/*.h */*/*/*.h */*/*.h */*.h *.h 2>$ERRFILE
DATA=$(cat $ERRFILE)
if [ "$DATA" != "" ];
then
cat $ERRFILE
exit 1
fi
}
function run_tarball {
rm $ERRFILE
echo "make dist-xz"
make dist-xz 2>$ERRFILE
check_error $?
mkdir $1
cd $1
echo "tar xf ../*.tar.xz"
tar xf ../*.tar.xz
cd manaplus*
}
function run_mplint {
rm $ERRFILE
echo "mplint/src/mplint $*"
mplint/src/mplint $* >$ERRFILE
check_error $?
run_check_warnings
}
update_repos
aptget_update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment