summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml61
-rwxr-xr-x.tools/contributors.sh24
-rwxr-xr-x.tools/deploy.sh36
-rwxr-xr-x.tools/downloadlib.sh22
-rwxr-xr-x.tools/imagemagiccheck.sh22
-rwxr-xr-x.tools/init.sh90
-rwxr-xr-x.tools/licensecheck.sh24
-rwxr-xr-x.tools/manaplus.sh33
-rwxr-xr-x.tools/newlines.sh28
-rwxr-xr-x.tools/pngcheck.sh23
-rwxr-xr-x.tools/retry.sh15
-rwxr-xr-x.tools/testxml.sh33
12 files changed, 411 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..eca9465c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,61 @@
+stages:
+- test
+
+image: debian:buster
+before_script:
+ - uname -a
+
+pngcheck:
+ stage: test
+ script:
+ - ./.tools/pngcheck.sh
+ allow_failure: true
+
+imagemagiccheck:
+ stage: test
+ script:
+ - ./.tools/imagemagiccheck.sh
+ allow_failure: true
+
+manaplus:
+ stage: test
+ script:
+ - ./.tools/manaplus.sh
+ image: debian:stable
+ artifacts:
+ paths:
+ - shared
+ when: always
+ expire_in: 3 week
+ allow_failure: true
+
+newlines:
+ stage: test
+ tags:
+ - lightweight
+ script:
+ - ./.tools/newlines.sh
+ artifacts:
+ paths:
+ - shared
+ when: always
+ expire_in: 3 week
+ allow_failure: true
+
+licensecheck:
+ stage: test
+ tags:
+ - lightweight
+ script:
+ - ./.tools/licensecheck.sh
+ allow_failure: true
+
+testxml:
+ stage: test
+ tags:
+ - glados
+ script:
+ - ./.tools/testxml.sh
+ - pwd
+ allow_failure: true
+
diff --git a/.tools/contributors.sh b/.tools/contributors.sh
new file mode 100755
index 00000000..cbfadf1b
--- /dev/null
+++ b/.tools/contributors.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+clientdata_init
+
+aptget_update
+aptget_install git-core gcc ca-certificates libxml2-utils make xsltproc
+rm -rf tools
+gitclone https://git.themanaworld.org/evolved tools.git tools
+
+cd tools/contrib_xsl
+
+make about-server
+check_error $?
+
+cd ../../clientdata
+
+export RES=$(git diff)
+if [[ -n "${RES}" ]]; then
+ echo "Contributors list not updated"
+ git diff
+ exit 1
+fi
diff --git a/.tools/deploy.sh b/.tools/deploy.sh
new file mode 100755
index 00000000..82b8c292
--- /dev/null
+++ b/.tools/deploy.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+clientdata_init
+
+aptget_update
+aptget_install git-core zip gcc zlib1g-dev ca-certificates libxml2-utils python
+rm -rf tools
+gitclone https://git.themanaworld.org/evolved tools.git tools
+
+cd clientdata
+rm -rf public
+mkdir public
+
+cd ..
+
+# FIXME
+#rm -rf music
+#gitclone https://git.themanaworld.org/evolved music.git music
+
+cd tools/update
+
+# FIXME
+./createnew.sh
+check_error $?
+#./create_music.sh
+#check_error $?
+
+cp -r upload/* ../../clientdata/public
+cd ../../clientdata
+gitclone https://git.themanaworld.org/mana pagesindexgen.git pagesindexgen
+cd pagesindexgen
+./pagesindexgen.py ../public
+check_error $?
+ls ../public
diff --git a/.tools/downloadlib.sh b/.tools/downloadlib.sh
new file mode 100755
index 00000000..c1aff5a4
--- /dev/null
+++ b/.tools/downloadlib.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+export zipname="lib.zip"
+export libname="$1_$2"
+
+mkdir libdownload
+cd libdownload
+rm "${zipname}"
+../client-data/.tools/retry.sh wget -O "${zipname}" "https://git.themanaworld.org/mana/spm/builds/artifacts/$1/download?job=${libname}"
+unzip "${zipname}"
+cp -r "bin/${libname}" ..
+cd ..
+
+rm -rf /usr/local/spm/bin/${libname}
+mkdir -p /usr/local/spm/bin
+
+cp -r libdownload/bin/${libname} /usr/local/spm/bin/
+ls /usr/local/spm/bin/${libname}
+if [ "$?" != 0 ]; then
+ echo "Library $1 $2 unpack failed"
+ exit 1
+fi
diff --git a/.tools/imagemagiccheck.sh b/.tools/imagemagiccheck.sh
new file mode 100755
index 00000000..34621cdd
--- /dev/null
+++ b/.tools/imagemagiccheck.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+clientdata_init
+
+aptget_update
+aptget_install git-core gcc ca-certificates imagemagick
+rm -rf tools
+gitclone https://git.themanaworld.org/evolved tools.git tools
+
+cd tools/CI/imagescheck
+
+./icccheck.sh >icccheck.log
+check_error $?
+
+export RES=$(cat icccheck.log)
+if [[ -n "${RES}" ]]; then
+ echo "Detected icc profiles"
+ cat icccheck.log
+ exit 1
+fi
diff --git a/.tools/init.sh b/.tools/init.sh
new file mode 100755
index 00000000..4fe533ef
--- /dev/null
+++ b/.tools/init.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+function check_error {
+ if [ "$1" != 0 ]; then
+ echo "Error $1"
+ exit $1
+ fi
+}
+
+function gitclone1 {
+ echo git clone $2 $3
+ git clone $2 $3
+ if [ "$?" != 0 ]; then
+ echo git clone $1 $3
+ git clone $1 $3
+ return $?
+ fi
+ return $?
+}
+
+function gitclone {
+ export name1=$1/$2
+ export name2=${CI_BUILD_REPO##*@}
+ export name2=https://${name2%/*}/$2
+
+ gitclone1 "$name1" "$name2" $3
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ gitclone1 "$name1" "$name2" $3
+ if [ "$?" != 0 ]; then
+ sleep 3s
+ gitclone1 "$name1" "$name2" $3
+ if [ "$?" != 0 ]; then
+ sleep 5s
+ gitclone1 "$name1" "$name2" $3
+ fi
+ fi
+ fi
+ check_error $?
+}
+
+function update_repos {
+ if [ "$CI_SERVER" == "" ];
+ then
+ return
+ fi
+
+ export DATA=$(cat /etc/resolv.conf|grep "nameserver 1.10.100.101")
+ 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
+ else
+ echo "Detected non local runner"
+ fi
+}
+
+function aptget_update {
+ update_repos
+ apt-get update
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ apt-get update
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ apt-get update
+ fi
+ fi
+ check_error $?
+}
+
+function aptget_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 $*
+ fi
+ fi
+ check_error $?
+}
+
+function clientdata_init {
+ mkdir shared
+ cd ..
+ ln -s clientdata client-data
+ check_error $?
+}
diff --git a/.tools/licensecheck.sh b/.tools/licensecheck.sh
new file mode 100755
index 00000000..ba2be45f
--- /dev/null
+++ b/.tools/licensecheck.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+clientdata_init
+
+aptget_update
+aptget_install git-core gcc ca-certificates grep
+rm -rf tools
+gitclone https://git.themanaworld.org/evolved tools.git tools
+
+cd tools/CI/licensecheck
+
+./clientdata.sh >license.log
+check_error $?
+
+export RES=$(cat license.log)
+if [[ -n "${RES}" ]]; then
+ echo "Detected missing licenses."
+ cat license.log
+ echo "Estimated total missing licenses:"
+ wc -l license.log
+ exit 1
+fi
diff --git a/.tools/manaplus.sh b/.tools/manaplus.sh
new file mode 100755
index 00000000..aeb39a86
--- /dev/null
+++ b/.tools/manaplus.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+clientdata_init
+
+aptget_update
+aptget_install gcc g++ \
+ make autoconf automake autopoint gettext \
+ libxml2-dev libcurl4-gnutls-dev libpng-dev \
+ libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev \
+ wget unzip
+
+pwd
+ls
+
+./clientdata/.tools/downloadlib.sh manaplus master || exit 1
+
+export HOME=`pwd`/clientdata/shared
+
+cd manaplus_master || exit 1
+export SDL_VIDEODRIVER=dummy
+./bin/manaplus --validate -u -d ../clientdata || exit 1
+
+ls "${HOME}/.local/share/mana/manaplus.log" || exit 1
+grep -A 10 "Assert:" "${HOME}/.local/share/mana/manaplus.log"
+
+if [ "$?" == 0 ]; then
+ echo "Asserts found"
+ exit 1
+fi
+
+cd ..
diff --git a/.tools/newlines.sh b/.tools/newlines.sh
new file mode 100755
index 00000000..64cbf7e1
--- /dev/null
+++ b/.tools/newlines.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+aptget_update
+aptget_install dos2unix git-core
+
+export LOG1="newlines.log"
+
+rm ${LOG1}
+
+find -H . -type f -name "*.xml" -exec dos2unix {} \; >${LOG1}
+
+export RES=$(git diff --name-only)
+if [[ -n "${RES}" ]]; then
+ echo "Wrong new lines detected in xml files:"
+ git diff --name-only
+ exit 1
+fi
+
+find -H . -type f -name "*.tmx" -exec dos2unix {} \; >>${LOG1}
+
+export RES=$(git diff --name-only)
+if [[ -n "${RES}" ]]; then
+ echo "Wrong new lines detected in tmx files:"
+ git diff --name-only
+ exit 1
+fi
diff --git a/.tools/pngcheck.sh b/.tools/pngcheck.sh
new file mode 100755
index 00000000..8955b26e
--- /dev/null
+++ b/.tools/pngcheck.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+aptget_update
+aptget_install pngcheck
+
+export LOG1="pngcheck.log"
+export LOG2="pngcheck2.log"
+
+rm ${LOG1}
+rm ${LOG2}
+
+find -H . -type f -name "*.png" -exec pngcheck {} \; >${LOG1}
+
+grep -v "32-bit RGB+alpha, non-interlaced, " ${LOG1} >${LOG2}
+export DATA=$(cat pngcheck2.log)
+if [[ -n "${DATA}" ]]; then
+ echo "Images must be in 32 bit RGBA and non-interlanced"
+ echo "Wrong images format found:"
+ cat ${LOG2}
+ exit 1
+fi
diff --git a/.tools/retry.sh b/.tools/retry.sh
new file mode 100755
index 00000000..aaa50e98
--- /dev/null
+++ b/.tools/retry.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+n=0
+
+while true; do
+ $*
+ if [ "$?" == 0 ]; then
+ exit 0
+ fi
+ if [[ $n -ge 10 ]]; then
+ exit -1
+ fi
+ sleep 5s
+ n=$((n+1))
+done
diff --git a/.tools/testxml.sh b/.tools/testxml.sh
new file mode 100755
index 00000000..a0dc16b3
--- /dev/null
+++ b/.tools/testxml.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+source ./.tools/init.sh
+
+clientdata_init
+
+aptget_update
+aptget_install git-core zip gcc zlib1g-dev ca-certificates libxml2-utils python python-pyvorbis python-ogg python-pil
+rm -rf tools
+gitclone https://git.themanaworld.org/evolved tools.git tools
+
+cd tools/CI/testxml
+
+./xsdcheck.sh
+check_error $?
+export RES=$(cat errors.txt)
+if [[ -n "${RES}" ]]; then
+ echo "xml check failed" >../../../clientdata/shared/error.log
+ echo ${RES} >>../../../clientdata/shared/error.log
+ cat ../../../clientdata/shared/error.log
+ exit 1
+fi
+
+echo >../../../clientdata/shared/error.log
+./testxml.py stfu >../../../clientdata/shared/error.log
+res="$?"
+cat ../../../clientdata/shared/error.log
+if [ "$res" != 0 ]; then
+ echo "test xml error"
+ exit 1
+fi
+
+echo >../../../clientdata/shared/error.log