khanat-opennel-code/.gitlab-ci.yml

771 lines
33 KiB
YAML
Raw Normal View History

2018-03-21 21:38:27 +00:00
# Configuration for Continous Integration
#
2018-03-30 17:48:29 +00:00
# Copyright (C) 2017 Khanat
2018-03-21 21:38:27 +00:00
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Example to execute locally:
# gitlab-runner exec docker --timeout=3600 'Linux client build'
2018-03-19 20:34:48 +00:00
# gitlab-runner exec docker --timeout=3600 'Linux server debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 'Linux client debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 'Linux client_static debian_amd64_strech build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client build'
2018-03-21 21:38:27 +00:00
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client archlinux build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client fedora_amd64_27 build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client ubuntu_amd64_17_10 build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Windows client build'
2018-03-21 21:38:27 +00:00
stages:
- build
- test
2018-02-09 22:33:04 +00:00
#- staging
#- production
## BUILDS
# Job de compilation pour Linux
Linux client build:
stage: build
except:
- ryzomcore
- mac-ci-build
tags:
- Docker
image: debian:jessie
script:
2018-03-19 20:34:48 +00:00
# Calcul le nombre de cpu désactivé (on ne laisse que 4 au maximum)
- disableproc=$(( $(nproc) - 4 ))
- if [[ $disableproc -le 0 ]] ; then disableproc=0; fi
- optionproc="-j$(nproc --ignore=$disableproc)"
- echo "disableproc:$disableproc, nb core compile:$(nproc --ignore=$disableproc) optionproc:$optionproc"
# Installation des dépendances
2018-02-28 20:31:44 +00:00
#- echo "deb http://ftp.debian.org/debian/ jessie-backports non-free contrib main" >> /etc/apt/sources.list
- apt-get update
- apt-get -y upgrade
2018-02-28 20:31:44 +00:00
- apt-get install libxml2 -y g++ gcc cmake libcurl4-openssl-dev libgl1-mesa-dev libjpeg-dev libpng-dev libopenal-dev libfreetype6-dev libxxf86vm-dev libxrandr-dev libxrender-dev libvorbis-dev libluabind-dev libboost-dev libmysqlclient-dev libssl-dev liblzma-dev libxml2-dev makeself libgif-dev
# Installation des dépendances des dépendances statiques (à commenter si construction de Khanat en mode dynamique)
# libxml2 : python-pyicu (support d'unicode), python-dev (support de... python)
- apt-get install -y wget python-pyicu python-dev
# Création de l'environnement de compilation
- mkdir -p BUILD/x86_64
- cd BUILD/x86_64
## Le curl des dépots a trop de dépendances en statique. On le recompile donc, afin d'aléger l'executable
# Téléchargement et décompression des dépendances à recompiller
- wget -c http://curl.haxx.se/download/curl-7.50.0.tar.gz
- tar xzf curl-7.50.0.tar.gz
# Compilation de curl
- cd curl-7.50.0
- ./configure --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-ipv6 --disable-crypto-auth --disable-sspi --disable-tls-srp --without-gnutls --without-librtmp --without-libidn --disable-versioned-symbols --disable-pop3 --without-libssh2 --with-ssl
2018-03-19 20:34:48 +00:00
- make install $optionproc
- cd ..
## Compilation de Khanat
# Configuration
- cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Release -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_UNIX_STRUCTURE=OFF -DWITH_INSTALL_LIBRARIES=OFF -DWITH_LUA52=ON ../../code
# Compilation et installation
- make $optionproc khanat_client_patcher khanat_client
#- make $optionproc install DESTDIR=../../Linux/x86_64
- mkdir -p ../../Linux/x86_64
- cp bin/* ../../Linux/x86_64
# Packaging
- cd ../../
- cp ./dist/khanat/autoextract_script.sh ./Linux/x86_64/
- chmod +x ./Linux/x86_64/autoextract_script.sh
- makeself --nox11 --target /tmp/khanat_installer ./Linux/x86_64/ khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run "Khanat installer" ./autoextract_script.sh
artifacts:
name: "khanat-$(echo $CI_BUILD_REF | head -c 7)-$CI_PIPELINE_ID-Linux-x86_64"
paths:
- khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run
2018-03-19 20:34:48 +00:00
Linux server debian_amd64_strech build:
stage: build
except:
- mac-ci-build
2018-03-19 20:34:48 +00:00
tags:
- Docker
image: amd64/debian:9
script:
# Prepare environment
- apt-get update
- apt-get dist-upgrade -y
2018-03-19 20:34:48 +00:00
- DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
- apt-get install -y
git
2018-03-19 20:34:48 +00:00
libcurl4-openssl-dev
libfreetype6-dev
libx11-dev
libgl1-mesa-dev
libxxf86vm-dev
libxrandr-dev
libxrender-dev
libopenal-dev
libxml2-dev
cmake
build-essential
libpng-dev
libjpeg62-turbo-dev
rrdtool
bison
libxmu-dev
autoconf
automake
default-libmysqlclient-dev
libgif-dev
cpputest
libssl-dev
liblzma-dev
unzip
zlib1g-dev
libssh2-1-dev
libboost-all-dev
libopenal-dev
libgl1-mesa-dev
mercurial
wget
autogen
libtool
libtool-bin
fakeroot
libxml2-dev
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5
- mkdir -p squish
- (cd squish; wget -c https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libsquish/squish-1.11.zip)
- (cd squish; unzip squish-1.11.zip)
- (cd squish/squish-1.11; patch -i ../../patch/squish-limit.patch)
- (cd squish/squish-1.11; make)
- (cd squish/squish-1.11; make install)
# Action
- mkdir -p code/build
- (cd code/build ; cmake -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=OFF ..)
- (cd code/build; make ryzom_admin_service ryzom_ai_service ryzom_backup_service ryzom_dynamic_scenario_service ryzom_entities_game_service ryzom_frontend_service ryzom_general_utilities_service ryzom_gpm_service ryzom_ios_service ryzom_log_analyser_service ryzom_logger_service ryzom_mail_forum_service ryzom_mirror_service ryzom_mission_compiler ryzom_monitor_service ryzom_naming_service ryzom_patchman_service ryzom_pd_support_service ryzom_persistant_data_service ryzom_reference_builder_service ryzom_session_browser_service ryzom_shard_unifier_service ryzom_tick_service ryzom_welcome_service sheets_packer bnp_make make_sheet_id patch_gen)
- (cd code/build/bin; ls -lh)
artifacts:
2018-03-21 21:38:27 +00:00
name: "khanat-server-debian_strech-$CI_COMMIT_REF_NAME"
2018-03-19 20:34:48 +00:00
paths:
- code/build/bin
2018-04-03 11:25:26 +00:00
- code/build/lib
- code/ryzom/server/shard.screen.rc
2018-03-30 17:48:29 +00:00
- code/web
- code/ryzom/server/*.cfg
- code/ryzom/server/data_shard
- code/ryzom/common/data_common
- code/ryzom/common/data_leveldesign
- code/ryzom/client/*.cfg
- code/ryzom/client/cfg
- code/ryzom/client/data
- code/ryzom/client/macosx
- code/ryzom/client/unix
- code/ryzom/client/windows
2018-03-31 14:42:48 +00:00
- code/ryzom/tools/scripts/linux
2018-03-19 20:34:48 +00:00
expire_in: 2 week
Linux client debian_amd64_strech build:
stage: build
except:
- mac-ci-build
2018-03-19 20:34:48 +00:00
tags:
- Docker
image: amd64/debian:9
script:
# Prepare environment
- apt-get update
- apt-get dist-upgrade -y
- apt-get install -y autoconf
autogen
automake
bison
build-essential
cmake
cpputest
fakeroot
libboost-all-dev
libfreetype6-dev
libgif-dev
libgl1-mesa-dev
libjpeg62-turbo-dev
liblzma-dev
libopenal-dev
libpng-dev
libssh2-1-dev
libssl-dev
libtool
libtool-bin
libx11-dev
libxml2-dev
libxmu-dev
libxrandr-dev
libxrender-dev
libxxf86vm-dev
mercurial
rrdtool
unzip
wget
zlib1g-dev
2018-03-19 20:34:48 +00:00
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev
# Build Curl
- wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz
- mkdir -p curl/build
- tar xvf curl.tar.gz -C curl --strip 1
- (cd curl/build; cmake -DCMAKE_BUILD_TYPE=Release -DCURL_ZLIB=ON -DBUILD_CURL_EXE=OFF -DCURL_STATICLIB=ON -DHTTP_ONLY=ON -DENABLE_IPV6=ON -DCMAKE_USE_OPENSSL=ON -DOPENSSL_SSL_LIBRARIES=/usr/lib/x86_64-linux-gnu/libssl.a -DOPENSSL_CRYPTO_LIBRARIES=/usr/lib/x86_64-linux-gnu/libcrypto.a -DCMAKE_USE_LIBSSH2=OFF -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.a -DCMAKE_C_FLAGS='-fPIC' ..)
- (cd curl/build; make)
- (cd curl/build; make install)
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-debian_strech-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID"
paths:
- code/build/bin
expire_in: 2 week
Linux client_static debian_amd64_strech build:
stage: build
except:
- mac-ci-build
2018-03-19 20:34:48 +00:00
tags:
- Docker
image: amd64/debian:9
script:
# Prepare environment
- apt-get update
- apt-get dist-upgrade -y
- apt-get install -y
2018-03-19 20:34:48 +00:00
autoconf
autogen
2018-03-19 20:34:48 +00:00
automake
bison
build-essential
cmake
2018-03-19 20:34:48 +00:00
cpputest
fakeroot
2018-03-19 20:34:48 +00:00
libboost-all-dev
libfreetype6-dev
libgif-dev
2018-03-19 20:34:48 +00:00
libgl1-mesa-dev
libjpeg62-turbo-dev
liblzma-dev
libopenal-dev
libpng-dev
libssh2-1-dev
libssl-dev
2018-03-19 20:34:48 +00:00
libtool
libtool-bin
libx11-dev
2018-03-19 20:34:48 +00:00
libxml2-dev
libxmu-dev
libxrandr-dev
libxrender-dev
libxxf86vm-dev
mercurial
rrdtool
unzip
wget
zlib1g-dev
2018-03-19 20:34:48 +00:00
- apt-get install -y liblua5.2-0 liblua5.2-dev
# Build Curl
2018-04-20 19:54:16 +00:00
- wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz
2018-03-19 20:34:48 +00:00
- mkdir -p curl/build
- tar xvf curl.tar.gz -C curl --strip 1
- (cd curl/build; cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_CURL_TESTS=OFF -DCURL_ZLIB=ON -DBUILD_CURL_EXE=OFF -DCURL_STATICLIB=ON -DHTTP_ONLY=ON -DENABLE_IPV6=ON -DCMAKE_USE_OPENSSL=ON -DOPENSSL_SSL_LIBRARIES=/usr/lib/x86_64-linux-gnu/libssl.a -DOPENSSL_CRYPTO_LIBRARIES=/usr/lib/x86_64-linux-gnu/libcrypto.a -DCMAKE_USE_LIBSSH2=OFF -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.a -DCMAKE_C_FLAGS='-fPIC' ..)
2018-03-19 20:34:48 +00:00
- (cd curl/build; make)
- (cd curl/build; make install)
2018-04-20 19:54:16 +00:00
# Build luabind
2018-03-19 20:34:48 +00:00
- mkdir -p luabind
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg.orig.tar.gz -O luabind.tar.gz
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg-11.debian.tar.xz -O luabind-debian.tar.xz
- tar xvf luabind.tar.gz -C luabind --strip 1 || exit 2
- tar xvf luabind-debian.tar.xz -C luabind || exit 2
- cd luabind
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
2018-04-20 19:54:16 +00:00
- export -p DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH); bjam -d2 release debug install cflags="-fPIC $(dpkg-buildflags --get CFLAGS)" cxxflags="-fPIC $(dpkg-buildflags --get CXXFLAGS) -Wno-deprecated-declarations" linkflags=" $(dpkg-buildflags --get LDFLAGS)"
- export -p DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH); bjam -d2 release debug install link=static cflags="-fPIC $(dpkg-buildflags --get CFLAGS)" cxxflags="-fPIC $(dpkg-buildflags --get CXXFLAGS) -Wno-deprecated-declarations" linkflags=" $(dpkg-buildflags --get LDFLAGS)"
2018-03-19 20:34:48 +00:00
- cd ..
# Build libogg
- mkdir -p libogg/build
- wget -q http://http.debian.net/debian/pool/main/libo/libogg/libogg_1.3.2.orig.tar.gz -O libogg.tar.gz
- wget -q http://http.debian.net/debian/pool/main/libo/libogg/libogg_1.3.2-1.diff.gz -O libogg.diff.gz
- tar xvf libogg.tar.gz -C libogg --strip 1 || exit 2
- gunzip libogg.diff.gz
- cd libogg
- patch -p1 < ../libogg.diff
- cd build
- ../configure --disable-maintainer-mode --host=$(dpkg-architecture -qDEB_HOST_GNU_TYPE) --build=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE) --libdir=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH) --enable-static --prefix=/usr CPPFLAGS="-D_FORTIFY_SOURCE=2" CFLAGS="-Wformat=2 -g -fPIC" CXXFLAGS="-Wformat=2 -g -fPIC" LDFLAGS="-Wl,-z,now"
- make
- make install
- cd ../..
# Build libvorbis
- mkdir -p libvorbis
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/libvorbis_1.3.5.orig.tar.gz -O libvorbis.tar.gz
- tar xvf libvorbis.tar.gz -C libvorbis --strip 1 || exit 2
# Get list package
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis -O list_libvorbis
# get last patch for our release
- line=$(egrep '(libvorbis_1.3.5)(.*)(tar[.]xz)' list_libvorbis | tail -n 1)
# get only name of the patch
- tmp=${line#*href} ; tmp2=${tmp%%>*} ; tmp3=${tmp2#*\"} ; namepatch=${tmp3%\"*}
# download this patch
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/$namepatch -O libvorbis.debian.tar.xz
2018-03-19 20:34:48 +00:00
- tar xvf libvorbis.debian.tar.xz -C libvorbis || exit 2
- cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- ./configure --enable-static --with-pic
- make
- make install
- cd ..
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code; patch -i ../patch/libicuuc.patch)
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client_static-debian_amd64_strech-$CI_COMMIT_REF_NAME"
2018-03-21 21:38:27 +00:00
paths:
- code/build/bin
expire_in: 2 week
Linux client_static debian_i386_strech build:
2018-05-01 22:00:37 +00:00
stage: build
except:
- mac-ci-build
tags:
- Docker
image: i386/debian:9
script:
# Prepare environment
- apt-get update
- apt-get dist-upgrade -y
- apt-get install -y autoconf autogen automake bison build-essential cmake cpputest fakeroot libboost-all-dev libfreetype6-dev libgif-dev libgl1-mesa-dev libjpeg62-turbo-dev liblzma-dev libopenal-dev libpng-dev libssh2-1-dev libssl-dev libtool libtool-bin libx11-dev libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxxf86vm-dev mercurial rrdtool unzip wget zlib1g-dev
- apt-get install -y liblua5.2-0 liblua5.2-dev
# Build Curl
- wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz
- mkdir -p curl/build
- tar xvf curl.tar.gz -C curl --strip 1
- (cd curl/build; cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_CURL_TESTS=OFF -DCURL_ZLIB=ON -DBUILD_CURL_EXE=OFF -DCURL_STATICLIB=ON -DHTTP_ONLY=ON -DENABLE_IPV6=ON -DCMAKE_USE_OPENSSL=ON -DOPENSSL_SSL_LIBRARIES=/usr/lib/i386-linux-gnu/libssl.a -DOPENSSL_CRYPTO_LIBRARIES=/usr/lib/i386-linux-gnu/libcrypto.a -DCMAKE_USE_LIBSSH2=OFF -DZLIB_LIBRARY=/usr/lib/i386-linux-gnu/libz.a -DCMAKE_C_FLAGS='-fPIC' ..)
2018-05-01 22:00:37 +00:00
- (cd curl/build; make)
- (cd curl/build; make install)
# Build luabind
- mkdir -p luabind
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg.orig.tar.gz -O luabind.tar.gz
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg-11.debian.tar.xz -O luabind-debian.tar.xz
- tar xvf luabind.tar.gz -C luabind --strip 1 || exit 2
- tar xvf luabind-debian.tar.xz -C luabind || exit 2
- cd luabind
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- export -p DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH); bjam -d2 release debug install cflags="-fPIC $(dpkg-buildflags --get CFLAGS)" cxxflags="-fPIC $(dpkg-buildflags --get CXXFLAGS) -Wno-deprecated-declarations" linkflags=" $(dpkg-buildflags --get LDFLAGS)"
- export -p DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH); bjam -d2 release debug install link=static cflags="-fPIC $(dpkg-buildflags --get CFLAGS)" cxxflags="-fPIC $(dpkg-buildflags --get CXXFLAGS) -Wno-deprecated-declarations" linkflags=" $(dpkg-buildflags --get LDFLAGS)"
- cd ..
# Build libogg
- mkdir -p libogg/build
- wget -q http://http.debian.net/debian/pool/main/libo/libogg/libogg_1.3.2.orig.tar.gz -O libogg.tar.gz
- wget -q http://http.debian.net/debian/pool/main/libo/libogg/libogg_1.3.2-1.diff.gz -O libogg.diff.gz
- tar xvf libogg.tar.gz -C libogg --strip 1 || exit 2
- gunzip libogg.diff.gz
- cd libogg
- patch -p1 < ../libogg.diff
- cd build
- ../configure --disable-maintainer-mode --host=$(dpkg-architecture -qDEB_HOST_GNU_TYPE) --build=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE) --libdir=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH) --enable-static --prefix=/usr CPPFLAGS="-D_FORTIFY_SOURCE=2" CFLAGS="-Wformat=2 -g -fPIC" CXXFLAGS="-Wformat=2 -g -fPIC" LDFLAGS="-Wl,-z,now"
- make
- make install
- cd ../..
# Build libvorbis
- mkdir -p libvorbis
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/libvorbis_1.3.5.orig.tar.gz -O libvorbis.tar.gz
- tar xvf libvorbis.tar.gz -C libvorbis --strip 1 || exit 2
# Get list package
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis -O list_libvorbis
# get last patch for our release
- line=$(egrep '(libvorbis_1.3.5)(.*)(tar[.]xz)' list_libvorbis | tail -n 1)
# get only name of the patch
- tmp=${line#*href} ; tmp2=${tmp%%>*} ; tmp3=${tmp2#*\"} ; namepatch=${tmp3%\"*}
# download this patch
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/$namepatch -O libvorbis.debian.tar.xz
- tar xvf libvorbis.debian.tar.xz -C libvorbis || exit 2
- cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- ./configure --enable-static --with-pic
- make
- make install
- cd ..
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code; patch -i ../patch/libicuuc.patch)
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client_static-debian_i386_strech-$CI_COMMIT_REF_NAME"
paths:
- code/build/bin
expire_in: 2 week
2018-03-21 21:38:27 +00:00
# Fedora Client
Linux client fedora_amd64_27 build:
stage: build
except:
- mac-ci-build
tags:
- Docker
image: amd64/fedora:27
script:
# Prepare environment
- yum update -y
- yum install -y
autoconf
autogen
automake
bison
boost-devel
cmake
fakeroot
freetype-devel
gcc
gcc-c++
giflib-devel
libcurl-devel
libjpeg-turbo-devel
libogg-devel
libpng-devel
libssh2-devel
libtool
libvorbis-devel
libX11-devel
libxml2-devel
libXmu
libXrandr-devel
libXrender-devel
libXxf86vm-devel
luabind-devel
lua-devel
lzma-devel
make
mercurial
mesa-libGL-devel
openal-soft-devel
openssl-devel
patch
rrdtool
unzip
wget
xz
zlib-devel
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code/build ; export -p CPPFLAGS="-Wno-deprecated -Wno-deprecated-declarations"; cmake -G "Unix Makefiles" -DWITH_NEL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=OFF ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-fedora_27-$CI_COMMIT_REF_NAME"
paths:
- code/build/bin
expire_in: 2 week
2018-03-21 21:38:27 +00:00
# Ubuntu Client
Linux client ubuntu_amd64_17_10 build:
stage: build
except:
- mac-ci-build
tags:
- Docker
image: amd64/ubuntu:17.10
script:
# Prepare environment
- apt-get update
- apt-get dist-upgrade -y
- apt-get install -y autoconf
autogen
automake
bison
build-essential
cmake
cpputest
fakeroot
libboost-all-dev
libcurl4-openssl-dev
libfreetype6-dev
libgif-dev
libgl1-mesa-dev
libjpeg62-dev
liblzma-dev
libopenal-dev
libpng-dev
libssh2-1-dev
libssl-dev
libtool
libtool-bin
libx11-dev
libxml2-dev
libxmu-dev
libxrandr-dev
libxrender-dev
libxxf86vm-dev
mercurial
rrdtool
unzip
wget
zlib1g-dev
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code/build ; export -p CPPFLAGS="-Wno-deprecated -Wno-deprecated-declarations"; cmake -G "Unix Makefiles" -DWITH_NEL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=OFF ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-ubuntu_17_10-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID"
paths:
- code/build/bin
expire_in: 2 week
2018-03-21 21:38:27 +00:00
# Archlinux Client
Linux client archlinux build:
stage: build
except:
- mac-ci-build
2018-03-21 21:38:27 +00:00
tags:
- Docker
image: base/archlinux
script:
# Prepare environment
- cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
- curl -o /etc/pacman.d/mirrorlist.new https://www.archlinux.org/mirrorlist/all/
- sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.new
- ls /usr/bin/*
- pacman -Syyu --noconfirm pacman-contrib
- rankmirrors -n 6 /etc/pacman.d/mirrorlist.new > /etc/pacman.d/mirrorlist
- pacman -Syyu
- pacman -S --noconfirm
2018-03-21 21:38:27 +00:00
autoconf
autogen
2018-03-21 21:38:27 +00:00
automake
binutils
2018-03-21 21:38:27 +00:00
boost
boost-libs
cmake
2018-03-21 21:38:27 +00:00
fakeroot
gcc
giflib
git
glu
libjpeg-turbo
2018-03-21 21:38:27 +00:00
libogg
libpng
libssh
libtool
2018-03-21 21:38:27 +00:00
libvorbis
libx11
libxml2
libxmu
libxrandr
libxrender
libxxf86vm
lua
make
mesa
openal
openssl
2018-03-21 21:38:27 +00:00
patch
pkg-config
sed
unzip
wget
2018-03-21 21:38:27 +00:00
xorg-xfd
xz
zlib
> pacman.log
2018-03-21 21:38:27 +00:00
# Install Yaourt
# Disable check root (never do that on real server)
- sed -i 's/EUID == 0/EUID == 12345/g' /usr/sbin/makepkg
- mkdir -p build
- cd build
- git clone https://aur.archlinux.org/package-query.git
- cd package-query
- yes | makepkg -si || echo $?
- cd ..
- git clone https://aur.archlinux.org/yaourt.git
- cd yaourt
- yes | makepkg -si || echo $?
- cd ../..
- yaourt -Syyu --noconfirm --aur boost-build
# Build
- mkdir -p luabind
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg.orig.tar.gz -O luabind.tar.gz
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg-11.debian.tar.xz -O luabind-debian.tar.xz
- tar xvf luabind.tar.gz -C luabind --strip 1 || exit 2
- tar xvf luabind-debian.tar.xz -C luabind || exit 2
- cd luabind
- ls -l
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
2018-03-22 14:45:01 +00:00
- export -p DEB_HOST_MULTIARCH="/"; bjam -d2 release debug install cxxflags="-fPIC -Wno-deprecated -Wno-deprecated-declarations"
- export -p DEB_HOST_MULTIARCH="/"; bjam -d2 release debug install link=static cxxflags="-fPIC -Wno-deprecated -Wno-deprecated-declarations"
2018-03-21 21:38:27 +00:00
- cd ..
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code; patch -i ../patch/libicuuc.patch)
- (cd code/build ; export -p CPPFLAGS="-Wno-deprecated -Wno-deprecated-declarations"; cmake -G "Unix Makefiles" -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON /opt/code ..)
2018-03-21 21:38:27 +00:00
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-archlinux-$CI_COMMIT_REF_NAME"
2018-03-19 20:34:48 +00:00
paths:
- code/build/bin
expire_in: 2 week
when: manual
2018-03-19 20:34:48 +00:00
2018-03-21 21:38:27 +00:00
# Gentoo Client
2018-03-19 20:34:48 +00:00
# Windows Client
Windows client build:
stage: build
except:
- mac-ci-build
tags:
- Docker
image: amd64/debian:9
script:
# Prepare environment
- dpkg --add-architecture i386
- apt-get update
- apt-get dist-upgrade -y
- apt-get install -y
p7zip-full
binfmt-support
libc6-i386
libncurses5:i386
libfreetype6:i386
bzip2
wget
2018-03-30 17:48:29 +00:00
dos2unix
# Action
- mkdir -p wincross
2018-03-30 17:48:29 +00:00
- source builder/cross_win32.sh
- mkdir -p codebis
- cp -r code/* codebis/.
- find codebis -type f -name "*.h*" -exec unix2dos {} \;
- find codebis -type f -name "*.c*" -exec unix2dos {} \;
- find codebis -type f -name "*.txt" -exec unix2dos {} \;
- find codebis -type f -name "*.rc" -exec unix2dos {} \;
- mkdir -p build
- cd build
- wine cmake.exe -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_LUA53=ON -DWITH_LUA51=OFF -DWITH_STLPORT=OFF -DWITH_DRIVER_DSOUND=ON -G "NMake Makefiles JOM" -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_DRIVER_OPENAL=OFF -DWITH_DRIVER_DSOUND=ON -DWITH_DRIVER_XAUDIO2=ON -DWITH_DRIVER_FMOD=ON -DWITH_DRIVER_DIRECT3D=ON ../codebis
2018-05-01 22:56:47 +00:00
- wine jom.exe
artifacts:
name: "khanat-client-windows-$CI_COMMIT_REF_NAME"
paths:
- build/bin
expire_in: 2 week
# Job de compilation pour OSX
OSX client build:
stage: build
only:
- tags
- mac-ci-build
tags:
- OSX
variables:
# Éviter de cloner tout le dépot à chaque fois, à la place juste récuperer les changements
GIT_STRATEGY: fetch
script:
# Création de l'environnement de compilation
- mkdir -p BUILD/x86_64
- cd BUILD/x86_64
# Configuration
2018-05-02 19:49:43 +00:00
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFINAL_VERSION=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_STATIC_EXTERNAL=OFF -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_LUA52=ON ../../code
# Compilation et installation
- make -j$(($(sysctl -n hw.ncpu)/2)) install DESTDIR=../../OSX/x86_64
artifacts:
name: "khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-OSX-x86_64"
paths:
- OSX/x86_64/*
when: manual
## TESTS
Linux client test:
stage: test
except:
- ryzomcore
- mac-ci-build
tags:
- Docker
image: ubuntu:14.04
script:
# Test de l'installation initiale
- ./khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run
dependencies:
- Linux client build
.OSX client test:
stage: test
only:
- tags
- mac-ci-build
tags:
- OSX
script:
- echo "pas encore de test pour le client OSX"
dependencies:
- OSX client build
when: manual
##DEPLOYEMENT TO STAGING (TEST SERVER)
# Job de déploiment vers le staging. Inutilisé pour le moment, il pourrait servir à l'avenir pour déployer automatiquement les nouvelles versions du client/serveur vers l'environnement de staging (zone de test)
.Deploy to Staging:
stage: staging
environment: Staging
except:
- ryzomcore
tags:
- Docker
image: ubuntu:14.04
script:
- echo "pas encore de deployment"
dependencies:
- Linux client build
- Linux client test
- OSX client build
- OSX client test
when: manual
##DEPLOYEMENT TO PRODUCTION
# Job de déploiment vers la production. Inutilisé pour le moment, il pourrait servir à l'avenir pour déployer automatiquement les nouvelles versions du client/serveur vers l'environnement de production
.Release to Production:
stage: production
environment: Production
only:
- tags
tags:
- Docker
image: ubuntu:14.04
script:
- echo "pas encore de tag"
dependencies:
- Linux client build
- Linux client test
- OSX client build
- OSX client test
- Deploy to Staging
when: manual