Merge branch '45-build-binary-debian-buster' into 'develop'

Resolve "build binary for debian buster"

Closes #45

See merge request khaganat/mmorpg_khanat/khanat-opennel-code!43
This commit is contained in:
deed 2019-09-07 16:23:55 +02:00
commit 7e3079b9e1

View file

@ -19,7 +19,10 @@
# gitlab-runner exec docker --timeout=3600 'Linux client build'
# gitlab-runner exec docker --timeout=3600 'Linux server debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 'Linux server_static debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 'Linux server debian_amd64_buster build'
# gitlab-runner exec docker --timeout=3600 'Linux client debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 --docker-volumes $PWD/builds:/builds 'Linux client debian_amd64_buster build'
# gitlab-runner exec docker --timeout=3600 --docker-volumes $PWD/builds:/builds 'Linux client_appimage debian_amd64_buster 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'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client archlinux build'
@ -29,6 +32,7 @@
stages:
- build
- package
- test
#- staging
#- production
@ -45,6 +49,7 @@ Linux client build:
- Docker
image: debian:jessie
script:
- pwd
# 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
@ -54,7 +59,7 @@ Linux client build:
#- echo "deb http://ftp.debian.org/debian/ jessie-backports non-free contrib main" >> /etc/apt/sources.list
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
- DEBIAN_FRONTEND=noninteractive 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 patch
- DEBIAN_FRONTEND=noninteractive apt-get install -y libxml2 libboost1.55-tools-dev dpkg-dev 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 patch xz-utils
# 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
@ -65,19 +70,19 @@ Linux client build:
- 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
- make install $optionproc
- cd ..
- 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 -j)
- (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
- xz -d luabind-debian.tar.xz
- tar xvf luabind-debian.tar -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)"
@ -93,7 +98,7 @@ Linux client build:
- 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 -j
- make install
- cd ../..
# Build libvorbis
@ -112,7 +117,7 @@ Linux client build:
- cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- ./configure --enable-static --with-pic
- make
- make -j
- make install
- cd ..
## Compilation de Khanat
@ -128,10 +133,12 @@ Linux client build:
- 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
- pwd
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
when: manual
Linux server debian_amd64_strech build:
@ -218,7 +225,6 @@ Linux server debian_amd64_strech build:
- code/ryzom/client/windows
- code/ryzom/tools/scripts/linux
# expire_in: 2 week
when: manual
Linux client debian_amd64_strech build:
@ -284,7 +290,6 @@ Linux client debian_amd64_strech build:
paths:
- code/build/bin
# expire_in: 2 week
when: manual
Linux client_static debian_amd64_strech build:
@ -295,6 +300,10 @@ Linux client_static debian_amd64_strech build:
- Docker
image: amd64/debian:9
script:
# 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)"
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
@ -382,19 +391,19 @@ Linux client_static debian_amd64_strech build:
- cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- ./configure --enable-static --with-pic
- make
- make -j
- make install
- cd ..
# Action
- mkdir -p code/build
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=ON -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON ..)
- (cd code/build; make khanat_client)
- (cd code/build; make $optionproc khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client_static-debian_amd64_strech-$CI_COMMIT_REF_NAME"
paths:
- code/build/bin
# expire_in: 2 week
expire_in: 2 week
Linux client_static_debug debian_amd64_strech build:
@ -405,6 +414,10 @@ Linux client_static_debug debian_amd64_strech build:
- Docker
image: amd64/debian:9
script:
# 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)"
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
@ -497,7 +510,7 @@ Linux client_static_debug debian_amd64_strech build:
# Action
- mkdir -p code/build
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=ON -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON -DWITH_SYMBOLS=ON ..)
- (cd code/build; make khanat_client)
- (cd code/build; make $optionproc khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client_static_debug-debian_amd64_strech-$CI_COMMIT_REF_NAME"
@ -514,6 +527,10 @@ Linux server_static debian_amd64_strech build:
- Docker
image: amd64/debian:9
script:
# 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)"
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
@ -525,7 +542,7 @@ Linux server_static debian_amd64_strech build:
- 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' ..)
- (cd curl/build; make)
- (cd curl/build; make -j)
- (cd curl/build; make install)
# Build luabind
- mkdir -p luabind
@ -548,7 +565,7 @@ Linux server_static debian_amd64_strech build:
- 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 -j
- make install
- cd ../..
# Build libvorbis
@ -567,7 +584,7 @@ Linux server_static debian_amd64_strech build:
- cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- ./configure --enable-static --with-pic
- make
- make -j
- make install
- cd ..
# Action
@ -575,7 +592,7 @@ Linux server_static debian_amd64_strech build:
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF ..)
- ls -l code
- ls -l code/build
- (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; make $optionproc 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:
name: "khanat-server_static-debian_amd64_strech-$CI_COMMIT_REF_NAME"
@ -605,6 +622,10 @@ Linux server_static_debug debian_amd64_strech build:
- Docker
image: amd64/debian:9
script:
# 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)"
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
@ -616,7 +637,7 @@ Linux server_static_debug debian_amd64_strech build:
- 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' ..)
- (cd curl/build; make)
- (cd curl/build; make -j)
- (cd curl/build; make install)
# Build luabind
- mkdir -p luabind
@ -639,7 +660,7 @@ Linux server_static_debug debian_amd64_strech build:
- 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 -j
- make install
- cd ../..
# Build libvorbis
@ -658,7 +679,7 @@ Linux server_static_debug debian_amd64_strech build:
- cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- ./configure --enable-static --with-pic
- make
- make -j
- make install
- cd ..
# Action
@ -666,7 +687,7 @@ Linux server_static_debug debian_amd64_strech build:
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF -DWITH_SYMBOLS=ON ..)
- ls -l code
- ls -l code/build
- (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; make $optionproc 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:
name: "khanat-server_static_debug-debian_amd64_strech-$CI_COMMIT_REF_NAME"
@ -696,6 +717,10 @@ Linux client_static debian_i386_strech build:
- Docker
image: i386/debian:9
script:
# 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)"
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
@ -756,7 +781,7 @@ Linux client_static debian_i386_strech build:
# Action
- mkdir -p code/build
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF ..)
- (cd code/build; make khanat_client)
- (cd code/build; make $optionproc khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client_static-debian_i386_strech-$CI_COMMIT_REF_NAME"
@ -765,7 +790,6 @@ Linux client_static debian_i386_strech build:
# expire_in: 2 week
Linux client_static_debug debian_i386_strech build:
stage: build
except:
@ -774,6 +798,10 @@ Linux client_static_debug debian_i386_strech build:
- Docker
image: i386/debian:9
script:
# 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)"
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
@ -834,7 +862,7 @@ Linux client_static_debug debian_i386_strech build:
# Action
- mkdir -p code/build
- (cd code/build ; cmake -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_SYMBOLS=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_NEL_TESTS=OFF ..)
- (cd code/build; make khanat_client)
- (cd code/build; make $optionproc khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client_static_debug-debian_i386_strech-$CI_COMMIT_REF_NAME"
@ -1065,6 +1093,252 @@ Linux client archlinux build:
when: manual
Linux server debian_amd64_buster build:
stage: build
except:
- mac-ci-build
tags:
- Docker
image: amd64/debian:10
script:
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
- DEBIAN_FRONTEND=noninteractive apt-get install -y default-mysql-server
git
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
patch
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5
# Apply patch
- (for patchfile in $(cat patch/series); do echo "patch patch/$patchfile"; patch -f -Z -t -p 1 -i patch/$patchfile || exit 2; done)
# install squish
- 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:
name: "khanat-server-debian_buster-$CI_COMMIT_REF_NAME"
paths:
- code/build/bin
- code/build/lib
- code/ryzom/server/shard.screen.rc
- 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
- code/ryzom/tools/scripts/linux
expire_in: 2 week
Linux client debian_amd64_buster build:
stage: build
except:
- mac-ci-build
tags:
- Docker
image: amd64/debian:10
script:
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive 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
patch
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev
# Apply patch
- (for patchfile in $(cat patch/series); do echo "patch patch/$patchfile"; patch -f -Z -t -p 1 -i patch/$patchfile || exit 2; done)
# 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 -j)
- (cd curl/build; make install)
# Action
- mkdir -p code/build
# - (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 -j khanat_client)
- (cd code/build ; cmake -DWITH_INSTALL_LIBRARIES=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL=ON -DWITH_NEL_TOOLS=OFF -DWITH_TOOLS=OFF -DWITH_STUDIO=OFF -DWITH_STATIC=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -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 -j )
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-debian_buster-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID"
paths:
- code/build/bin
expire_in: 2 week
Linux client_appimage debian_amd64_buster build:
stage: build
except:
- mac-ci-build
tags:
- Docker
image: amd64/debian:10
script:
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive 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
patch
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev
# libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libpostproc-dev
# Install AppImage / LinuxDeploy
- mkdir -p appimage
- wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -O appimage/linuxdeploy-x86_64.AppImage
- (cd appimage; chmod +x linuxdeploy-x86_64.AppImage; ./linuxdeploy-x86_64.AppImage --appimage-extract)
# Apply patch
- (for patchfile in $(cat patch/series); do echo "patch patch/$patchfile"; patch -f -Z -t -p 1 -i patch/$patchfile || exit 2; done)
# 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 -j)
- (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 --prefix=/usr 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 --prefix=/usr 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 ..
# Action
# / -DWITH_NEL=ON -DWITH_TOOLS=OFF -DWITH_STUDIO=OFF
- mkdir -p code/build
#- (cd code/build ; cmake -DCMAKE_INSTALL_PREFIX=/usr -DWITH_INSTALL_LIBRARIES=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL=ON -DWITH_NEL_TOOLS=OFF -DWITH_TOOLS=OFF -DWITH_STUDIO=OFF -DWITH_STATIC=ON -DWITH_RYZOM_TOOLS=OFF -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 ; cmake -DCMAKE_INSTALL_PREFIX=/usr -DWITH_INSTALL_LIBRARIES=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL=ON -DWITH_NEL_TOOLS=OFF -DWITH_TOOLS=OFF -DWITH_STUDIO=OFF -DWITH_STATIC=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -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 -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON ..)
- (cd code/build; make -j )
- (cd code/build; make -j install DESTDIR=AppDir)
# Generate AppImage
- (cd code/build; rm -rf AppDir/usr/bin)
- (cd code/build; mv AppDir/usr/games AppDir/usr/bin)
- (cd code/build; sed -i 's/Exec=games\//Exec=/g' AppDir/usr/share/applications/khanat_client.desktop)
- (cd code/build; sed -i 's/Version=0.1/Version=1.0/g' AppDir/usr/share/applications/khanat_client.desktop)
- (cd code/build; ../../appimage/squashfs-root/AppRun --appdir AppDir --output appimage)
- (ls -lh code/build/Khanat-x86_64.AppImage)
artifacts:
name: "khanat-client_appimage-debian_buster-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID"
paths:
- code/build/Khanat-x86_64.AppImage
expire_in: 2 week
# Windows Client
Windows client build:
stage: build
@ -1090,21 +1364,21 @@ Windows client build:
# Action
- mkdir -p wincross
- 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 {} \;
- find code -type f -name "*.h*" -exec unix2dos {} \;
- find code -type f -name "*.c*" -exec unix2dos {} \;
- find code -type f -name "*.txt" -exec unix2dos {} \;
- find code -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
- wine jom.exe
- 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 ../code
- wine jom.exe || wine jom.exe || wine jom.exe
artifacts:
name: "khanat-client-windows-$CI_COMMIT_REF_NAME"
paths:
- build/bin
# expire_in: 2 week
when: manual
# Job de compilation pour OSX
@ -1133,6 +1407,39 @@ OSX client build:
when: manual
## Package
Linux client package:
stage: package
except:
- mac-ci-build
tags:
- Docker
image: amd64/debian:10
script:
# Prepare environment
- DEBIAN_FRONTEND=noninteractive apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
- apt-get install -y makeself
# Test de l'installation initiale
- ls -l
- mkdir -p Linux/x86_64
- find code/build/bin
- cp code/build/bin/* Linux/x86_64
- cp code/build/Khanat-x86_64.AppImage Linux/x86_64
# Packaging
- 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
- ls -l
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
dependencies:
- Linux client debian_amd64_buster build
- Linux client_appimage debian_amd64_buster build
## TESTS
Linux client test:
stage: test
@ -1141,12 +1448,15 @@ Linux client test:
- mac-ci-build
tags:
- Docker
image: ubuntu:18.04
image: amd64/debian:10
script:
# Test de l'installation initiale
- ls -l
- ./khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run
- ls -l
- ls -l /tmp/khanat_installer/
dependencies:
- Linux client build
- Linux client package
.OSX client test:
stage: test